0

をboolean型を与える場合elasticsearch DSLで文書を作成することができ、私はエラーない私は、コードを持っている偽の値で

Traceback (most recent call last): 
    File "/tmp/test.py", line 31, in <module> 
    doc.save(refresh=True) 
    File "/usr/lib/python2.7/site-packages/elasticsearch_dsl/document.py", line 240, in save 
    self.full_clean() 
    File "/usr/lib/python2.7/site-packages/elasticsearch_dsl/utils.py", line 453, in full_clean 
    self.clean_fields() 
    File "/usr/lib/python2.7/site-packages/elasticsearch_dsl/utils.py", line 447, in clean_fields 
    raise ValidationException(errors) 
elasticsearch_dsl.exceptions.ValidationException: {'deleted': [ValidationException('Value required for this field.',)]} 

を取得

from elasticsearch_dsl.connections import connections 
from elasticsearch_dsl import DocType, String, Boolean 

class BaseDoc(DocType): 
    id = String(required=True, index='not_analyzed') 
    name = String(required=True) 
    deleted = Boolean(required=True, null_value=True) 

    class Meta: 
     index = 'test' 


class MyDoc(BaseDoc): 
    pass 

connections.create_connection(hosts=['localhost:9200']) 

MyDoc.init() 

doc = MyDoc(id='test', name='test', deleted=False) 

doc.save(refresh=True) 

以下のようにあなたが見た場合、私はコードでdelete=Falseを渡しています私はdocオブジェクトを作成しようとします。

deletedの値をとっていないときは?

私はdeleted

doc = MyDoc(id='test', name='test') 

doc.save(refresh=True) 

を削除するとその後も、それは同じエラーを与え、削除がelasticsearch DSLで世話をされていないようです。

答えて

1

問題が発生しています。was fixed in PR #390

まだリリース0.0.11を使用しているようです。 ES 2.xを使用している場合は、リリース2.2.0にアップグレードする必要があります.ES 5.xを使用している場合は、リリース5.1.0にアップグレードする必要があります。

+0

はい、私は 'elasticsearch-dsl == 0.0.11'を使用しています。バージョンをアップグレードしてください。 – Nilesh

+0

Iは ' { "バージョン" とバージョンの詳細を持っている:{ "番号": "1.7.6"、 "build_timestamp": "2016-11-18T15:21:16Z"、 "build_snapshot" :偽、 "lucene_version": "4.10.4" }、 "キャッチフレーズ": "あなたが知っている、検索のための" } '' ' だから、これはバージョン番号' 1.7'または '4.10'を持っていますか? – Nilesh

+0

ああ、まだES 1.7.6を使用していますが、おそらく 'elasticsearch-dsl == 2.2.0'にアップグレードすることはできません。 ES 2.4にアップグレードすることは可能ですか? – Val

関連する問題