java - Lucene - Lucene 文档中字段的名称不是唯一的

标签 java lucene

我在我正在处理的代码库中发现,在创建 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/

相关文章:

java - Jersey Http 客户端在 POST 请求上回复 411

java - 在 Lucene 中索引多个用户的数据的最佳实践是什么

merge - 为什么 Lucene 合并索引?

Lucene 4.6 IndexReader 删除

java - 在 servlet 容器启动后立即调用对 localhost 的请求

java - 如何在拖动组件时获取组件的x位置?

java - 为什么 javac "-source"标志不起作用?

java - JScrollPane 不能在我的 JTextArea 上工作?

apache - Solr TermVector 结果未返回

lucene - Solr 索引似乎有效 - 但没有返回任何结果