我在我正在处理的代码库中发现,在创建 lucene 文档时,相同的字段名称会多次用于不同的值(术语)。
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”字段。对我来说很奇怪。有道理吗?
最佳答案
一个字段可以使用多个值进行索引。例如,您可以有一个“内容字段,其中包含文档中的所有单词以及作者或标签等元数据。
关于您的搜索问题,根据您初始化 QueryParse 的字段(在本例中为“sameName”),这将是唯一的搜索字段。您当然可以向 QueryParser 添加多个字段。
关于java - Lucene - Lucene 文档中字段的名称不是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14627525/