我在使用elasticsearch配置时遇到了more_like_this django-haystack函数的问题 - 由于某种原因它在控制台中返回了一些奇怪的错误。这是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
会产生此错误。
任何帮助,任何提示都非常感谢,并为可能的蹩脚问题感到抱歉