我正在使用Lucene,我正在寻找在人类生成的内容中搜索复杂产品名称的最佳方法。出现在电子商务中的名称通常很长并且包含,例如:“brand_name category_name model_name technology_name version_number”。但是,撰写这些产品的人很少使用全名。
因此,对我来说,拥有一个可以找到例如提及的搜索引擎对我来说是完美的。 5个单词中的3个并且对结果应用准确性。例如。提及全名包含全名将具有准确度1.0,提及包含全名但交换的单词会降低,提及包含4或3个单词的单词也会被捕获,但精度会更低。
是否可以在Lucene之上创建具有可接受性能的此类功能?
答案 0 :(得分:2)
是。您可以使用短语查询一起搜索所有单词。组合您要查找的字词的BooleanQuery
将搜索任何给定字词,并为匹配更多查询字词的结果提供首选项(更高分数)。 BooleanQuery.setMinimumShouldMatch
方法可用于要求至少有三个匹配项。
如果你正朝这个方向看,所有这一切都很容易与Solr和ElasticSearch一起使用。