2

我在我正在处理的代码库中发现,在创建 lucene Document 时,相同的字段名称多次用于不同的值(术语)。

 doc.add(new Field("sameName", value1, store, index));
 doc.add(new Field("sameName", value2, store, index));
 ...
 doc.add(new Field("sameName", value3, store, index));

这是正确的吗?它有什么用?

然后在搜索过程中使用此字段的名称:

     QueryParser parser = new QueryParser(Version.LUCENE_40, "sameName", new StandardAnalyzer(
            Version.LUCENE_40));

尽管文档中有许多其他字段,但似乎在搜索过程中只使用了“sameName”字段。对我来说很奇怪。是否有意义?

4

1 回答 1

1

一个字段可以使用多个值进行索引。例如,您可以有一个“内容字段”,其中包含文档中的所有单词以及诸如作者或标签之类的元数据。

关于您的搜索问题,根据您初始化 QueryParse 的字段(在本例中为“sameName”),这将是唯一搜索的字段。您当然可以向 QueryParser 添加多个字段。

于 2013-01-31T18:16:19.523 回答