【问题标题】:Lucene search result not optimalLucene 搜索结果不是最优的
【发布时间】:2012-05-08 14:18:00
【问题描述】:

我知道 lucene 的不同部分以及如何使用它们,但我还有一个问题。 Lucene 在我的网上商店中运行并且做得很好。现在我想使用单个搜索字段优化我的搜索功能的搜索结果,用户可以在其中输入他想要搜索的任何内容。 从现在开始,我正在结合不同的搜索方法来获得短语和模糊搜索等结果。问题是我总是得到一个巨大的结果集。我想要一个较小的结果列表,其中包含最佳点击。当我离开模糊时,我可以做到这一点。然后我得到了一个很好的搜索结果,但是当用户输入错误时,结果是空的。

必须有一个解决方案来获得一个分数很高的小结果集,如果命中不好,还可以将它与模糊搜索结合起来?!

我必须考虑什么?我应该走哪条路? 这种情况的最佳解决方案是什么?

【问题讨论】:

  • 您是否有任何查询日志来确定出现了哪些拼写错误?

标签: search optimization lucene


【解决方案1】:

一种方法是首先使用非模糊查询进行搜索。如果该搜索返回合理数量的命中,那么您就完成了。

如果第一次搜索返回 0 个匹配项,则通过组合搜索再次尝试搜索,其中每个单独的搜索词都经过一次模糊测试 - 例如,如果您有“A B C”,则第二次搜索将类似于“(A~ AND B AND C) OR (A AND B~ AND C) OR (A AND B AND C~)"。这将最大限度地减少引入的模糊性,同时仍然对每个搜索词进行模糊测试。

请注意,我没有尝试过这种方法,但我尝试过类似的方法,您的第二次搜索会删除每个搜索词一次,以便您处理根本不在索引中的搜索词 -- "(A AND B)或(A 与 C)或(B 与 C)”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-26
    • 2014-03-27
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    相关资源
    最近更新 更多