[英]How can I use django-haystack search facets with custom attributes?
[英]Using django-haystack +Elasticsearch how can I search subsets of a word?
如果我輸入查詢“蘋果”我希望得到的結果,如“xyzapplexyz”,“蘋果”,“applexyz”,而不是像“應用”或“申請”。 但是我得到的是“ 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分析器而不是EdgeNGram
或者可以根據需要使用兩者。 EdgeNGram
僅從一開始就生成令牌。
假設max_gram >=5
,使用NGram
蘋果將是術語xyzapplexyz生成的令牌之一,您將獲得預期的結果,而且search_analyzer
也需要不同,否則您將獲得怪異的結果。
另外,如果您有大量文本,則使用ngram
index size
可能會變得很大
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.