0

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

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

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

4

1 回答 1

0

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

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

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

于 2012-05-09T11:58:09.357 回答