我正在使用Lucene搜索索引,它运行得很好。我唯一的问题是,我只需要返回一个特定的字段。您可以指定Lucene只返回结果中的某个字段,而不是整个文档吗?
vmdwslir1#
这就是FieldSelector类存在的原因。
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());如果你对加载一个 * 小 * 字段感兴趣,这将防止加载 * 大 * 字段,这反过来意味着加载文档的速度加快。我想你可以通过谷歌搜索找到更详细的信息。
indexReader.Document(docid,new MyFieldSelector());
g6baxovj2#
“返回某些字段”是什么意思?Document.get()函数只返回您请求的字段。
igetnqfo3#
是的,你完全可以做到你所要求的。你所要做的就是在document.get()方法中包含字段名(区分大小写)。
string fieldNameText = doc.Get("fieldName");
仅供参考,在问题中包含一些代码通常是一个好主意。这样可以更容易地提供一个好的答案。
3条答案
按热度按时间vmdwslir1#
这就是
FieldSelector
类存在的原因。并将其用作
indexReader.Document(docid,new MyFieldSelector());
如果你对加载一个 * 小 * 字段感兴趣,这将防止加载 * 大 * 字段,这反过来意味着加载文档的速度加快。我想你可以通过谷歌搜索找到更详细的信息。
g6baxovj2#
“返回某些字段”是什么意思?Document.get()函数只返回您请求的字段。
igetnqfo3#
是的,你完全可以做到你所要求的。你所要做的就是在document.get()方法中包含字段名(区分大小写)。
仅供参考,在问题中包含一些代码通常是一个好主意。这样可以更容易地提供一个好的答案。