我在使用 elasticsearch 配置 django-haystack 的 more_like_this 函数时遇到问题 - 出于某种原因,它在控制台中返回了一些奇怪的错误。这是python中的代码:
from haystack.query import SearchQuerySet
sqs= SearchQuerySet().filter(django_ct__exact='myapp.mymodel')
similar_items= sqs.more_like_this(myapp.mymodel.object)
这实际上返回了所有模型的结果,尽管过滤(这是一个肮脏的把戏,我知道,对不起)
另外日志中有一条消息:
Failed to fetch More Like This from Elasticsearch for document 'myapp.mymodel.21': Non-OK response returned (500):
u'SearchPhaseExecutionException [
Failed to execute phase [query],
total failure;
shardFailures {
[GKAIomI1QXedjKQOh5dcbw][haystack][0]: RemoteTransportException[[Amina Synge] [inet[/192.168.1.100:9302]][search/phase/query]];
nested: SearchParseException [[haystack][0]: from[20],
size[-1]: Parse Failure [
Failed to parse source [
{"from":20,
"size":-10,
"query":{
"bool":{
"must_not":{"term":{"_uid":"modelresult#myapp.mymodel.21"}},
"should":[{"mlt_field":{"django_id":{"like_text":"21"}}},
{"mlt_field":{"text":{"like_text":"<mymodel.textfield content>"}}},
{"mlt_field":{"user":{"like_text":"<mymodel.instance.username>"}}},
{"mlt_field":{"mymodel.instance_id":{"like_text":"21"}}},
{"mlt_field":{"id":{"like_text":"myapp.mymodel.21"}}}]}}}]]];
nested: SearchParseException[[haystack][0]: from[20],size[-1]: Parse Failure [size is set to [-10] and is expected to be higher or equal to 0]]; }
我是弹性搜索的新手,所以,我真的不明白这个异常意味着什么,以及如何改变size
。根本无法在手册中找到它。按短语搜索完美无缺,只会more_like_this
产生此错误。
任何帮助,任何提示都非常感谢,对可能蹩脚的问题感到抱歉