Django アプリに検索を実装するためのバックエンドとして、Haystack と ElasticSearch を使用しています。ステミングの処理方法がわかりません。インデックス付きモデルのテキストに「embedded」という単語が含まれています。「埋め込み」を検索すると、正しい結果が得られます。「埋め込み」で検索してもヒットしません。
ドキュメントが示す最も簡単な方法でクエリを実行しています。
SearchQuerySet().filter(content='embed')
コードを調べたところ、ElasticSearch が次のようにヒットしていることがわかりました。
import requests
url = 'http://127.0.0.1:9200/haystack/modelresult/_search?from=0&size=20'
kwargs = {"data": '{"query": {"filtered": {"filter": {"fquery": {"query": {"query_string": {"query": "django_ct:(component_catalog.component)"}}, "_cache": true}}, "query": {"query_string": {"query": "(embed)", "default_operator": "AND", "default_field": "text", "auto_generate_phrase_queries": true, "analyze_wildcard": true}}}}}', "timeout": 10}
requests.get(url, **kwargs)
質問:
Haystack がステミングされた結果を返さないのはなぜですか?
とは(embed)
どういう意味ですか?