私は、django プロジェクト用の Elasticsearch DSL のセットアップに取り組んでいます。
Elasticsearch DSL を使用してインデックスと doc_type を設定すると、すべてが機能します。センス (chrome プラグイン) と cURL を使用して、インデックスと doc_type のマッピングが追加されているかどうかを再確認し、保存したいオブジェクトが追加されています。
Elasticsearch DSL API 定義を使用してクエリを送信すると、問題が発生します - 結果が見つかりません。
def experimental_test():
connections.create_connection(hosts=['localhost:9200'])
tests_index = Index('tests_index')
tests_index.settings(
number_of_shards=1,
number_of_replicas=0
)
tests_index.doc_type(Test)
tests_index.delete(ignore=404)
tests_index.create()
Test.init()
test = Test(title='Foo')
test.save()
s = Search()
s = s.doc_type(Test)
s = s.query('match', title='Foo')
print s.to_dict()
response = s.execute()
以下は、Elasticsearch に送信されるデバッグの内容です (実際のクエリ)。
[INFO 2015-06-29 15:50:24,705 elasticsearch.trace] curl -XGET ' http://localhost:9200/_all/test/_search?pretty ' -d '{"query": {"match": { "タイトル": "ふー"}}}'
しかし、結果は見つかりません。
このクエリを cURL で Sense または端末にコピーすると、それが見つかります。
他の誰かがこの特定の問題を抱えていますか?
問題が何であるか、または別の方法で何ができるかを理解するように導く可能性のある回答に感謝します。
PS: API ドキュメントはあまり役に立ちません。