com.orientechnologies.lucene.functions.OLuceneSearchOnIndexFunction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of orientdb-lucene Show documentation
Show all versions of orientdb-lucene Show documentation
Lucene plugin for OrientDB NoSQL document graph dbms
The newest version!
package com.orientechnologies.lucene.functions;
import com.orientechnologies.lucene.builder.OLuceneQueryBuilder;
import com.orientechnologies.lucene.collections.OLuceneCompositeKey;
import com.orientechnologies.lucene.index.OLuceneFullTextIndex;
import com.orientechnologies.lucene.query.OLuceneKeyAndMetadata;
import com.orientechnologies.orient.core.command.OCommandContext;
import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal;
import com.orientechnologies.orient.core.db.record.OIdentifiable;
import com.orientechnologies.orient.core.id.ORID;
import com.orientechnologies.orient.core.index.OIndex;
import com.orientechnologies.orient.core.record.impl.ODocument;
import com.orientechnologies.orient.core.sql.executor.OResult;
import com.orientechnologies.orient.core.sql.executor.OResultInternal;
import com.orientechnologies.orient.core.sql.parser.OBinaryCompareOperator;
import com.orientechnologies.orient.core.sql.parser.OExpression;
import com.orientechnologies.orient.core.sql.parser.OFromClause;
import com.orientechnologies.orient.core.sql.parser.OFromItem;
import com.orientechnologies.orient.core.sql.parser.OIdentifier;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.memory.MemoryIndex;
/** Created by frank on 15/01/2017. */
public class OLuceneSearchOnIndexFunction extends OLuceneSearchFunctionTemplate {
public static final String MEMORY_INDEX = "_memoryIndex";
public static final String NAME = "search_index";
public OLuceneSearchOnIndexFunction() {
super(NAME, 2, 3);
}
@Override
public String getName() {
return NAME;
}
@Override
public Object execute(
Object iThis,
OIdentifiable iCurrentRecord,
Object iCurrentResult,
Object[] params,
OCommandContext ctx) {
if (iThis instanceof ORID) {
iThis = ((ORID) iThis).getRecord();
}
if (iThis instanceof OIdentifiable) {
iThis = new OResultInternal((OIdentifiable) iThis);
}
OResult result = (OResult) iThis;
String indexName = (String) params[0];
OLuceneFullTextIndex index = searchForIndex(ctx, indexName);
if (index == null) return false;
String query = (String) params[1];
MemoryIndex memoryIndex = getOrCreateMemoryIndex(ctx);
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy