java - 通过 MultiFields lucene 进行搜索

标签 java lucene full-text-search search-engine

您好,有一个应用程序将包含大量不同的元数据字段。 他们预计将有大约 5 000 - 10 000 个字段。

是否可以使用 lucene 一次搜索所有 thease 字段,而不将它们索引到一个字段中?

MultiFieldQueryParser 为每个单个字段生成一个查询,如果我没记错的话,默认 luecene 设置为一次大约 1000 个组合查询?

还有其他解析器可以搜索所有字段吗?

//特林德

最佳答案

不,如果您有多个字段并且想要搜索所有字段,那么您必须搜索所有字段。

理论上有no performance detriment搜索大量小字段与搜索一个大字段:

To put it another way: for standard disjunctive (OR'd) queries, the number of clauses doesn't really affect performance, except to the extent that more documents are potential matches

在实践中,您可能会遇到一些问题;我不知道。在假设您需要将它们全部索引到一个之前,我会尝试一下。

(子句的最大数量默认为 1024,但您可以通过 setMaxClauseCount 更改此设置。)

关于java - 通过 MultiFields lucene 进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601886/

相关文章:

java - 文件中字符出现的计数/频率分布,包括不可见的字符

java - 如何调整框架中按钮的大小

java - Lucene 8.5.1 中 IndexReader.getTermVector(int docID ,String field) 中的 docID 是什么以及它是如何工作的?

asp.net - 将 Solr 用于多个站点

c# - 执行 Lucene 搜索查询 "Contains"

sql - 多个表的 View 可以用于全文搜索吗?

mysql - 全文索引和搜索速度

Java EE 依赖注入(inject)什么时候使用?

MySQL 全文搜索

java - KeyListener编译问题中的doClick()