【发布时间】:2013-07-01 06:47:49
【问题描述】:
对不起,糟糕的标题,但让我解释一下我遇到的问题。我目前正在做一个项目,其中一部分包括地址搜索引擎,我在elasticsearch中有。我正在尝试做的是在我的搜索栏中输入新字符时使用 blur_like_this_field 查询来生成自动完成结果,并尝试“猜测”用户正在输入的(约 100 万个)地址中的哪个。
我的问题是我目前对我的查询有大小限制,因为从时间上讲,返回所有结果既不必要又昂贵。我的问题是,除非我从查询中返回 1000 个或更多结果,否则我经常得不到“正确”的结果。例如,如果我在尝试搜索“100 Broadway”时输入“100 Broadway”,但只返回 200 个结果(大约是我可以在不花费太长时间的情况下完成的最大结果),则 100 Broadway 无处可寻,即使所有返回的结果都比我想要的结果具有更高的 levenshtein 距离。如果我从查询中返回 2000 个结果,我会得到“100 Broadway”作为第一个结果,但它需要的时间太长。我什至无法过滤返回的结果以将正确的结果带到顶部,因为它没有被返回。
不应该对查询设置 N 的大小限制返回最好的 N 个结果,而不是它们的看似随机的子集?
如果措辞不当或过于含糊,请见谅。
【问题讨论】:
标签: python search autocomplete lucene elasticsearch