我使用 Haystack 和 ElasticSearch 作为后端在我的 Django 应用程序中实现搜索。我不明白它如何处理词干。我的索引模型在其文本中包含“嵌入”一词。搜索“嵌入式”会产生正确的结果。搜索“嵌入”一无所获。
我正在以文档显示的最简单方式进行查询:
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)
意思?