1

我正在使用 Lucene,并且正在寻找在人工生成的内容中搜索复杂产品名称的最佳方法。电子商务中出现的名称通常很长并且包含,例如:“brand_name category_name model_name technology_name version_number”。然而,写这些产品的人很少使用全名。

因此,对我来说,最好有一个搜索引擎,它可以在 5 个单词中找到 3 个,并将准确性应用于结果。例如,包含全名的提及将具有 1.0 的准确性,包含全名但交换单词的提及会降低,包含 5 个单词中的 4 或 3 个的提及也会被捕获,但准确性会更低。

是否有可能在 Lucene 之上以可接受的性能创建这样的功能?

4

1 回答 1

2

是的。您可以使用短语查询一起搜索所有单词。BooleanQuery组合您要查找的术语将搜索任何给定的术语,并优先考虑与更多查询术语匹配的结果(更高的分数)。该BooleanQuery.setMinimumShouldMatch方法可用于要求至少匹配三个术语。

如果您正在朝那个方向看,所有这一切都可以通过 Solr 和 ElasticSearch 轻松完成。

于 2015-03-20T15:38:56.047 回答