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]]; }

私はelasticsearchを初めて使用するので、この例外の意味と変更方法がよくわかりませんsize。単にマニュアルで見つけることができませんでした。フレーズによる検索は完全に機能しmore_like_thisますが、このエラーのみが発生します。

どんな助けでも、どんなヒントでも大歓迎です、そしておそらく不自由な質問でごめんなさい

4

0 に答える 0