2

我在使用 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产生此错误。

任何帮助,任何提示都非常感谢,对可能蹩脚的问题感到抱歉

4

0 回答 0