仅返回Lucene搜索中的某些字段

aar*_*ron 4 lucene search lucene.net

我正在使用Lucene搜索索引,它工作正常.我唯一的问题是我只需要返回一个特定的字段.你能指定Lucene只返回结果中的某个字段而不是整个文档吗?

L.B*_*L.B 10

这就是FieldSelector课堂存在的原因.你可以实现这样的类

class MyFieldSelector : FieldSelector
{
    public FieldSelectorResult Accept(string fieldName)
    {
        if (fieldName == "field1") return FieldSelectorResult.LOAD_AND_BREAK;
        return FieldSelectorResult.NO_LOAD;
    }
}
Run Code Online (Sandbox Code Playgroud)

并用它作为 indexReader.Document(docid,new MyFieldSelector());

如果您对加载字段感兴趣,这将阻止加载字段,这反过来意味着加载文档的速度加快.我想你可以通过一些谷歌搜索找到更详细的信息.