3

elasticsearch-dsl 0.0.9 ライブラリを使用したいのですが、その例は古くなっています。最新バージョンをインストールしましたが、整数型とブール型はもう存在しません。

したがって、彼らの例は機能していません。

from datetime import datetime
#There is no 'Integer' in elasticsearch_dsl
from elasticsearch_dsl import DocType, String, Date, Integer
from elasticsearch_dsl.connections import connections

# Define a default Elasticsearch client
connections.create_connection(hosts=['localhost'])

class Article(DocType):
    title = String(analyzer='snowball', fields={'raw': String(index='not_analyzed')})
    body = String(analyzer='snowball')
    tags = String(index='not_analyzed')
    published_from = Date()
    lines = Integer() ##############################   HERE

整数フィールドを宣言する方法を知っている人はいますか?

ありがとう。

編集

このドキュメントhttps://media.readthedocs.org/pdf/elasticsearch-dsl/latest/elasticsearch-dsl.pdfによると、整数型は 0.0.9 でも利用できるはずです

なぜそれが見つからないのかわかりません。

私の pip 出力からわかるように、私は 0.0.9 をインストールしました:Downloading elasticsearch_dsl-0.0.9-py2.py3-none-any.whl

4

1 に答える 1

3

Float 、 Double 、 Byte 、 Integer 、 Boolean 、 IP などのフィールド タイプは、 の動的クラスですelasticsearch-dsl。ソース コードに記載されているように、ライブラリ自体がこれらのクラスを作成します。クイック リファレンス用に、ファイルのサンプル コードをここに投稿します。完全な参照については、ファイルをチェックアウトできますelasticsearch_dsl/field.py

# generate the query classes dynamicaly
for f in FIELDS:
    fclass = _make_dsl_class(Field, f)
    globals()[fclass.__name__] = fclass
    __all__.append(fclass.__name__)

FIELDS は、これらすべてのフィールド タイプを含むタプルです。したがって、基本的にあなたの質問に答えるために、IDEはクラスを利用できないと表示しますが、コードを実行すると、それらは自動的に作成されます。

ここの212行目から確認してください。

于 2015-11-17T20:38:53.553 に答える