如果我有一个字段x,可以包含y或z等值,有没有一种方法可以查询,这样我只能返回已编入索引的值?
示例x可用的可设置值= test1,test2,test3,test4
第1项:字段x = test1
第2项:字段x = test2
第3项:字段x = test4
第4项:字段x = test1
执行所需的查询将返回以下列表:test1,test2,test4
我之前已将其实现为扩展方法:
public static class ReaderExtentions
{
public static IEnumerable<string> UniqueTermsFromField(
this IndexReader reader, string field)
{
var termEnum = reader.Terms(new Term(field));
do
{
var currentTerm = termEnum.Term();
if (currentTerm.Field() != field)
yield break;
yield return currentTerm.Text();
} while (termEnum.Next());
}
}
Run Code Online (Sandbox Code Playgroud)
您可以非常轻松地使用它:
var allPossibleTermsForField = reader.UniqueTermsFromField("FieldName");
Run Code Online (Sandbox Code Playgroud)
这将返回你想要的东西.
编辑:由于一些心不在焉,我正在跳过上面的第一个学期.我已相应更新代码以正常工作.
| 归档时间: |
|
| 查看次数: |
4023 次 |
| 最近记录: |