如果我输入查询“apple”,我希望得到类似“xyzapplexyz”、“apple”、“applexyz”和的结果,而不是类似“app”或“appl”。但我得到的是“applexyz”,“app”等等
我使用了EdgeNgram字段,并尝试使用以下查询:
1-->;>;SearchQuerySet().all().autocomplete(authors=query)
2-->;SearchQuerySet().all().filter(authors=query)
3——>;SearchQuerySet().all().filter(content=query)
4-->;SearchQuerySet().all().autocomplete(content=query)
但它们都没有给出所需的结果。如何解决此问题?你知道吗
如果您想要像
"xyzapplexyz"
这样的结果,那么您需要使用ngram analyzer而不是EdgeNGram
,或者您可以根据您的需求同时使用这两种方法。EdgeNGram
只从一开始生成令牌。你知道吗使用
NGram
apple将是termxyzapplexyz的生成标记之一,假设max_gram >=5
,您将得到预期的结果,而且search_analyzer
需要不同,否则您将得到奇怪的结果。你知道吗如果你有大量的文本,
index size
可能会因为ngram
而变得很大相关问题 更多 >
编程相关推荐