本文整理汇总了Java中org.apache.lucene.queries.TermsQuery类的典型用法代码示例。如果您正苦于以下问题:Java TermsQuery类的具体用法?Java TermsQuery怎么用?Java TermsQuery使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TermsQuery类属于org.apache.lucene.queries包,在下文中一共展示了TermsQuery类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: getFilter
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
public Query getFilter() {
boolean hasFilters = false;
List<Term> termsList = new ArrayList<>();
if (genre != null && genre.trim().length() > 0) {
hasFilters = true;
termsList.add(new Term(TrackField.GENRE.name(), genre.trim()));
}
if (year != null && year.trim().length() > 0) {
hasFilters = true;
termsList.add(new Term(TrackField.YEAR.name(), year.trim()));
}
if (hasFilters) {
return new TermsQuery(termsList);
}
return null;
}
开发者ID:mpcontracting,项目名称:rpmjukebox,代码行数:21,代码来源:TrackFilter.java
示例2: shouldUseTermsQuery
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Test
public void shouldUseTermsQuery() throws SyntaxError, IOException {
when(localParamsMock.get("command")).thenReturn("smembers");
when(localParamsMock.get("key")).thenReturn("simpleKey");
when(localParamsMock.get("ignoreScore")).thenReturn("true");
when(localParamsMock.getBool("useAnalyzer", false)).thenReturn(true);
when(localParamsMock.get(QueryParsing.V)).thenReturn("string_field");
when(requestMock.getSchema()).thenReturn(schema);
when(schema.getQueryAnalyzer()).thenReturn(new WhitespaceAnalyzer());
when(jedisMock.smembers(anyString())).thenReturn(new HashSet<>(Arrays.asList("123 124", "321", "322", "323", "324",
"325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338")));
redisQParser = new RedisQParser("string_field", localParamsMock, paramsMock, requestMock, commandHandler);
final Query query = redisQParser.parse();
verify(jedisMock).smembers("simpleKey");
IndexSearcher searcher = new IndexSearcher(new MultiReader());
Query rewrittenQuery = searcher.rewrite(query);
assertTrue(rewrittenQuery instanceof TermsQuery);
}
开发者ID:sematext,项目名称:solr-redis,代码行数:19,代码来源:TestRedisQParser.java
示例3: termsQuery
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
private static Query termsQuery(String columnName, Literal arrayLiteral) {
List<Term> terms = getTerms(columnName, arrayLiteral);
if (terms.isEmpty()) {
return new MatchNoDocsQuery();
}
return new TermsQuery(terms);
}
开发者ID:baidu,项目名称:Elasticsearch,代码行数:8,代码来源:LuceneQueryBuilder.java
示例4: apply
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Override
public Query apply(Function input, Context context) {
Tuple<Reference, Literal> tuple = super.prepare(input);
if (tuple == null) {
return null;
}
Reference reference = tuple.v1();
Literal literal = tuple.v2();
String columnName = reference.info().ident().columnIdent().fqn();
if (DataTypes.isCollectionType(reference.valueType()) && DataTypes.isCollectionType(literal.valueType())) {
List<Term> terms = getTerms(columnName, literal);
if (terms.isEmpty()) {
return genericFunctionFilter(input, context);
}
Query termsQuery = new TermsQuery(terms);
// wrap boolTermsFilter and genericFunction filter in an additional BooleanFilter to control the ordering of the filters
// termsFilter is applied first
// afterwards the more expensive genericFunctionFilter
BooleanQuery.Builder filterClauses = new BooleanQuery.Builder();
filterClauses.add(termsQuery, BooleanClause.Occur.MUST);
filterClauses.add(genericFunctionFilter(input, context), BooleanClause.Occur.MUST);
return filterClauses.build();
}
QueryBuilderHelper builder = QueryBuilderHelper.forType(tuple.v1().valueType());
return builder.eq(columnName, tuple.v2().value());
}
开发者ID:baidu,项目名称:Elasticsearch,代码行数:28,代码来源:LuceneQueryBuilder.java
示例5: isCostly
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
static boolean isCostly(Query query) {
// This does not measure the cost of iterating over the filter (for this we
// already have the DocIdSetIterator#cost API) but the cost to build the
// DocIdSet in the first place
// ========== BEGIN EDIT ==========
/*return query instanceof MultiTermQuery ||
query instanceof MultiTermQueryConstantScoreWrapper;*/
return query instanceof MultiTermQuery ||
query instanceof MultiTermQueryConstantScoreWrapper ||
query instanceof TermsQuery;
// ========== END EDIT ==========
}
开发者ID:baidu,项目名称:Elasticsearch,代码行数:13,代码来源:XUsageTrackingQueryCachingPolicy.java
示例6: handleExclude
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
private static void handleExclude(BooleanQuery boolQuery, List<Item> likeItems) {
// artificial docs get assigned a random id and should be disregarded
List<BytesRef> uids = new ArrayList<>();
for (Item item : likeItems) {
if (item.doc() != null) {
continue;
}
uids.add(createUidAsBytes(item.type(), item.id()));
}
if (!uids.isEmpty()) {
TermsQuery query = new TermsQuery(UidFieldMapper.NAME, uids.toArray(new BytesRef[0]));
boolQuery.add(query, BooleanClause.Occur.MUST_NOT);
}
}
开发者ID:baidu,项目名称:Elasticsearch,代码行数:15,代码来源:MoreLikeThisQueryParser.java
示例7: termQuery
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Override
public Query termQuery(Object value, @Nullable QueryParseContext context) {
if (indexOptions() != IndexOptions.NONE || context == null) {
return super.termQuery(value, context);
}
final BytesRef[] uids = Uid.createUidsForTypesAndId(context.queryTypes(), value);
return new TermsQuery(UidFieldMapper.NAME, uids);
}
开发者ID:baidu,项目名称:Elasticsearch,代码行数:9,代码来源:IdFieldMapper.java
示例8: termsQuery
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Override
public Query termsQuery(List values, @Nullable QueryParseContext context) {
if (indexOptions() != IndexOptions.NONE || context == null) {
return super.termsQuery(values, context);
}
return new TermsQuery(UidFieldMapper.NAME, Uid.createUidsForTypesAndIds(context.queryTypes(), values));
}
开发者ID:baidu,项目名称:Elasticsearch,代码行数:8,代码来源:IdFieldMapper.java
示例9: termsQuery
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
public Query termsQuery(List values, @Nullable QueryParseContext context) {
BytesRef[] bytesRefs = new BytesRef[values.size()];
for (int i = 0; i < bytesRefs.length; i++) {
bytesRefs[i] = indexedValueForSearch(values.get(i));
}
return new TermsQuery(names.indexName(), bytesRefs);
}
开发者ID:baidu,项目名称:Elasticsearch,代码行数:8,代码来源:MappedFieldType.java
示例10: addChromosomeFilter
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
private void addChromosomeFilter(BooleanQuery.Builder builder) {
if (CollectionUtils.isNotEmpty(chromosomeIds)) {
List<Term> chromosomeTerms = chromosomeIds.stream().map(id -> new Term(FeatureIndexFields.CHROMOSOME_ID
.getFieldName(), id.toString())).collect(Collectors.toList());
builder.add(new TermsQuery(chromosomeTerms), BooleanClause.Occur.MUST);
}
}
开发者ID:react-dev26,项目名称:NGB-master,代码行数:8,代码来源:VcfFilterForm.java
示例11: addVcfFileFilter
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
private void addVcfFileFilter(BooleanQuery.Builder builder) {
if (vcfFileIds != null && !vcfFileIds.isEmpty()) {
List<Term> terms = vcfFileIds.stream()
.map(vcfFileId -> new Term(FeatureIndexFields.FILE_ID.getFieldName(), vcfFileId.toString()))
.collect(Collectors.toList());
TermsQuery termsQuery = new TermsQuery(terms);
builder.add(termsQuery, BooleanClause.Occur.MUST);
}
}
开发者ID:react-dev26,项目名称:NGB-master,代码行数:10,代码来源:VcfFilterForm.java
示例12: shouldInitialiseWithGenre
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Test
public void shouldInitialiseWithGenre() {
TrackFilter trackFilter = new TrackFilter("Genre", null);
TermsQuery termsQuery = (TermsQuery)trackFilter.getFilter();
assertThat("Filter query should have 1 term", termsQuery.getTermData().size(), equalTo(1l));
}
开发者ID:mpcontracting,项目名称:rpmjukebox,代码行数:8,代码来源:TrackFilterTest.java
示例13: shouldInitialiseWithYear
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Test
public void shouldInitialiseWithYear() {
TrackFilter trackFilter = new TrackFilter(null, "2000");
TermsQuery termsQuery = (TermsQuery)trackFilter.getFilter();
assertThat("Filter query should have 1 term", termsQuery.getTermData().size(), equalTo(1l));
}
开发者ID:mpcontracting,项目名称:rpmjukebox,代码行数:8,代码来源:TrackFilterTest.java
示例14: shouldInitialiseWithGenreAndYear
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Test
public void shouldInitialiseWithGenreAndYear() {
TrackFilter trackFilter = new TrackFilter("Genre", "2000");
TermsQuery termsQuery = (TermsQuery)trackFilter.getFilter();
assertThat("Filter query should have 2 terms", termsQuery.getTermData().size(), equalTo(2l));
}
开发者ID:mpcontracting,项目名称:rpmjukebox,代码行数:8,代码来源:TrackFilterTest.java
示例15: termsQuery
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Override
public Query termsQuery(List<?> values, QueryShardContext context) {
failIfNotIndexed();
BytesRef[] bytesRefs = new BytesRef[values.size()];
for (int i = 0; i < bytesRefs.length; i++) {
bytesRefs[i] = indexedValueForSearch(values.get(i));
}
return new TermsQuery(name(), bytesRefs);
}
开发者ID:jprante,项目名称:elasticsearch-analysis-reference,代码行数:10,代码来源:ReferenceMapper.java
示例16: testSearchIndex
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Test
public void testSearchIndex() throws Exception {
try (LuceneSearchIndex index = new LuceneSearchIndex("", "test", true)) {
final Document doc1 = new Document();
doc1.add(new StringField(IndexedStore.ID_FIELD_NAME, new BytesRef("1".getBytes()), Store.YES));
doc1.add(new StringField("ds", "space1.ds1", Field.Store.NO));
doc1.add(new StringField("job", "job1", Field.Store.YES));
// since we want to sort on version add docvalues
doc1.add(new StringField("version", "v1", Field.Store.NO));
doc1.add(new SortedDocValuesField("version", new BytesRef("v1")));
doc1.add(new StringField("foo", "bar1", Store.NO));
doc1.add(new SortedDocValuesField("foo", new BytesRef("bar1")));
final Document doc2 = new Document();
doc2.add(new StringField(IndexedStore.ID_FIELD_NAME, new BytesRef("2".getBytes()), Store.YES));
doc2.add(new StringField("ds", "space1.ds1", Field.Store.NO));
doc2.add(new StringField("job", "job3", Field.Store.YES));
doc2.add(new StringField("version", "v2", Field.Store.NO));
doc2.add(new SortedDocValuesField("version", new BytesRef("v2")));
doc2.add(new StringField("foo", "bar2", Store.NO));
doc2.add(new SortedDocValuesField("foo", new BytesRef("bar2")));
final Document doc3 = new Document();
doc3.add(new StringField(IndexedStore.ID_FIELD_NAME, new BytesRef("3".getBytes()), Store.YES));
doc3.add(new StringField("ds", "space2.ds2", Field.Store.NO));
doc3.add(new StringField("job", "job2", Field.Store.YES));
doc3.add(new StringField("version", "v1", Field.Store.NO));
doc3.add(new SortedDocValuesField("version", new BytesRef("v1")));
index.add(doc1);
assertEquals(1, index.count(new TermQuery(new Term("ds", "space1.ds1"))));
BooleanQuery.Builder builder = new BooleanQuery.Builder();
builder.add(new BooleanClause(new TermQuery(new Term("ds", "space1.ds1")), BooleanClause.Occur.MUST));
builder.add(new BooleanClause(new TermQuery(new Term("version", "v1")), BooleanClause.Occur.MUST));
assertEquals(1, index.count(builder.build()));
assertEquals(0, index.count(new TermQuery(new Term("ds", "space2.ds2"))));
assertEquals(0, index.count(new TermQuery(new Term("version", "v2"))));
builder = new BooleanQuery.Builder();
builder.add(new BooleanClause(new TermQuery(new Term("ds", "space1.ds1")), BooleanClause.Occur.MUST));
builder.add(new BooleanClause(new TermQuery(new Term("version", "v2")), BooleanClause.Occur.MUST));
assertEquals(0, index.count(builder.build()));
assertEquals(1, index.count(new TermsQuery(new Term("ds", "space1.ds1"), new Term("version1", "v2"))));
index.add(doc2);
index.add(doc3);
assertEquals(2, index.count(new TermQuery(new Term("ds", "space1.ds1"))));
assertEquals(1, index.count(new TermQuery(new Term("ds", "space2.ds2"))));
builder = new BooleanQuery.Builder();
builder.add(new BooleanClause(new TermQuery(new Term("ds", "space2.ds2")), BooleanClause.Occur.MUST));
builder.add(new BooleanClause(new TermQuery(new Term("version", "v1")), BooleanClause.Occur.MUST));
assertEquals(1, index.count(builder.build()));
builder = new BooleanQuery.Builder();
builder.add(new BooleanClause(new TermQuery(new Term("ds", "space1.ds1")), BooleanClause.Occur.MUST));
builder.add(new BooleanClause(new TermQuery(new Term("version", "v1")), BooleanClause.Occur.MUST));
assertEquals(1, index.count(builder.build()));
Sort sorter = new Sort();
sorter.setSort(new SortField("version", SortField.Type.STRING));
Collection<Document> documents = index.searchForDocuments(new TermQuery(new Term("ds", "space1.ds1")), 1000, sorter);
assertEquals(2, documents.size());
// exists queries
assertEquals(2, index.count(LuceneQueryConverter.INSTANCE.toLuceneQuery(SearchQueryUtils.newExistsQuery("foo"))));
assertEquals(1, index.count(LuceneQueryConverter.INSTANCE.toLuceneQuery(SearchQueryUtils.newDoesNotExistQuery("foo"))));
}
}
开发者ID:dremio,项目名称:dremio-oss,代码行数:74,代码来源:TestLuceneIndexer.java
示例17: searchGenesInVcfFilesInProject
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
/**
* Searches gene IDs, affected by variations in specified VCF files in a specified project
*
* @param projectId an ID of a project to search genes
* @param gene a prefix of a gene ID to search
* @param vcfFileIds a {@code List} of IDs of VCF files in project to search for gene IDs
* @return a {@code Set} of gene IDs, that are affected by some variations in specified VCf files
* @throws IOException
*/
public Set<String> searchGenesInVcfFilesInProject(long projectId, String gene, List<Long> vcfFileIds) throws
IOException {
if (vcfFileIds == null || vcfFileIds.isEmpty()) {
return Collections.emptySet();
}
BooleanQuery.Builder builder = new BooleanQuery.Builder();
PrefixQuery geneIdPrefixQuery = new PrefixQuery(new Term(FeatureIndexFields.GENE_ID.getFieldName(),
gene.toLowerCase()));
PrefixQuery geneNamePrefixQuery = new PrefixQuery(new Term(FeatureIndexFields.GENE_NAME.getFieldName(),
gene.toLowerCase()));
BooleanQuery.Builder geneIdOrNameQuery = new BooleanQuery.Builder();
geneIdOrNameQuery.add(geneIdPrefixQuery, BooleanClause.Occur.SHOULD);
geneIdOrNameQuery.add(geneNamePrefixQuery, BooleanClause.Occur.SHOULD);
builder.add(geneIdOrNameQuery.build(), BooleanClause.Occur.MUST);
List<Term> terms = vcfFileIds.stream()
.map(vcfFileId -> new Term(FeatureIndexFields.FILE_ID.getFieldName(), vcfFileId.toString()))
.collect(Collectors.toList());
TermsQuery termsQuery = new TermsQuery(terms);
builder.add(termsQuery, BooleanClause.Occur.MUST);
BooleanQuery query = builder.build();
Set<String> geneIds;
try (
Directory index = fileManager.getIndexForProject(projectId);
IndexReader reader = DirectoryReader.open(index)
) {
if (reader.numDocs() == 0) {
return Collections.emptySet();
}
IndexSearcher searcher = new IndexSearcher(reader);
final TopDocs docs = searcher.search(query, reader.numDocs());
final ScoreDoc[] hits = docs.scoreDocs;
geneIds = fetchGeneIds(hits, searcher);
} catch (IOException e) {
LOGGER.error(MessageHelper.getMessage(MessagesConstants.ERROR_FEATURE_INDEX_SEARCH_FAILED), e);
return Collections.emptySet();
}
return geneIds;
}
开发者ID:react-dev26,项目名称:NGB-master,代码行数:57,代码来源:FeatureIndexDao.java
示例18: searchGenesInVcfFilesInProject
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
/**
* Searches gene IDs, affected by variations in specified VCF files in a specified project
*
* @param projectId an ID of a project to search genes
* @param gene a prefix of a gene ID to search
* @param vcfFileIds a {@code List} of IDs of VCF files in project to search for gene IDs
* @return a {@code Set} of gene IDs, that are affected by some variations in specified VCf files
* @throws IOException
*/
public Set<String> searchGenesInVcfFilesInProject(long projectId, String gene, List<Long> vcfFileIds) throws
IOException {
if (vcfFileIds == null || vcfFileIds.isEmpty()) {
return Collections.emptySet();
}
BooleanQuery.Builder builder = new BooleanQuery.Builder();
PrefixQuery geneIdPrefixQuery = new PrefixQuery(new Term(FeatureIndexFields.GENE_ID.getFieldName(),
gene.toLowerCase()));
PrefixQuery geneNamePrefixQuery = new PrefixQuery(new Term(FeatureIndexFields.GENE_NAME.getFieldName(),
gene.toLowerCase()));
BooleanQuery.Builder geneIdOrNameQuery = new BooleanQuery.Builder();
geneIdOrNameQuery.add(geneIdPrefixQuery, BooleanClause.Occur.SHOULD);
geneIdOrNameQuery.add(geneNamePrefixQuery, BooleanClause.Occur.SHOULD);
builder.add(geneIdOrNameQuery.build(), BooleanClause.Occur.MUST);
List<Term> terms = vcfFileIds.stream()
.map(vcfFileId -> new Term(FeatureIndexFields.FILE_ID.getFieldName(), vcfFileId.toString()))
.collect(Collectors.toList());
TermsQuery termsQuery = new TermsQuery(terms);
builder.add(termsQuery, BooleanClause.Occur.MUST);
BooleanQuery query = builder.build();
Set<String> geneIds;
try (
Directory index = fileManager.getIndexForProject(projectId);
IndexReader reader = DirectoryReader.open(index)
) {
if (reader.numDocs() == 0) {
return Collections.emptySet();
}
IndexSearcher searcher = new IndexSearcher(reader);
final TopDocs docs = searcher.search(query, reader.numDocs());
final ScoreDoc[] hits = docs.scoreDocs;
geneIds = fetchGeneIds(hits, searcher);
} catch (IOException e) {
LOGGER.error(getMessage(MessagesConstants.ERROR_FEATURE_INDEX_SEARCH_FAILED), e);
return Collections.emptySet();
}
return geneIds;
}
开发者ID:epam,项目名称:NGB,代码行数:57,代码来源:FeatureIndexDao.java
示例19: makeQuery
import org.apache.lucene.queries.TermsQuery; //导入依赖的package包/类
@Override
@SuppressWarnings("unchecked")
Query makeQuery(String fname, Iterator<BytesRef> it) {
return new TermsQuery(fname, IteratorUtils.toList(it));
}
开发者ID:flaxsearch,项目名称:BioSolr,代码行数:6,代码来源:XJoinQParserPlugin.java
注:本文中的org.apache.lucene.queries.TermsQuery类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论