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

时间:2012-01-27 17:30:57

标签: search lucene lucene.net

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

3 个答案:

答案 0 :(得分:9)

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

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

并将其用作indexReader.Document(docid,new MyFieldSelector());

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

答案 1 :(得分:-2)

你是什么意思“归还某些领域”? Document.get()函数只返回您请求的字段。

答案 2 :(得分:-2)

是的,你绝对可以做你想要的。您所要做的就是在document.get()方法中包含字段名称(区分大小写)。

string fieldNameText = doc.Get("fieldName"); 

仅供参考,在您的问题中包含一些代码通常是个好主意。它可以更容易地提供一个好的答案。