我正在使用Lucene搜索索引,它运行正常。我唯一的问题是我只需要返回一个特定的字段。你能指定Lucene只返回结果中的某个字段而不是整个文档吗?
答案 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");
仅供参考,在您的问题中包含一些代码通常是个好主意。它可以更容易地提供一个好的答案。