如何使用Lucene.Net查询集合中的term,类似SQL的IN操作符?我们正在尝试搜索文档是否在可能值字段集合中具有特定字段值:[value1,value2,value3,...,valueN]如果匹配任何输入值,它将返回即元素,类似于SQL的IN()运算符。这类似于范围查询,但元素不一定描述范围。使用Lucene.NetAPI的示例是,varquery=newQueryParser(version,"FieldName",analyzer).In("value1","value2","value3");这在Lucene.Net中可能吗?field:value1field:value2....应该可以解决问题。默认情况下,所有项都是或运算。以编程方式,您可以尝试publicstaticQueryIn(stringfieldName,IEnumerablevalues){varquery=newBooleanQuery();foreach(varvalinvalues){query.Add(newTermQuery(newLucene.Net.Index.Term(fieldName,val)),BooleanClause.Occur.SHOULD);}返回查询;正如@I4V提到的,默认是LuceneOR的术语,所以这应该给你想要的结果,publicQueryIn(stringpropertyName,IEnumerablecollection){加入(“”,集合));返回查询;}basedon,field:value1,value2,value3,...,valueN将返回集合中至少有一个值的任何文档。以上是C#学习教程:如何使用Lucene.Net查询集合中的term,类似于SQL的IN运算符?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
