2

ElasticSearch データソースの単体テストを作成していますが、さまざまな結果が得られます。問題は、match_all クエリが送信したレコードを見つけられないことですが、単体テストと同じ順序で CURL を使用して手動でコマンドを実行すると、レコードを見つけることができます。

おそらくインデックスが更新されていないと思いますので、レコードを送信した後に「更新」APIコマンドを実行し始めましたが、これも機能しませんでした。これが私のコマンドのリストです。これらのコマンドがすぐに連続して実行された場合でも、これらのコマンドが機能することを確認する方法について誰か提案があれば役に立ちます。

単体テストが実行するコマンド:

curl -XGET 'http://localhost:9200/test_index/_mapping'

curl -XDELETE 'http://localhost:9200/test_index/test_models'

curl -XPOST 'http://localhost:9200/test_index/test_models/_refresh' -d '{}'

curl -XPUT 'http://localhost:9200/test_index/test_models/_mapping' -d '{"test_models":{"properties":{"TestModel":{"properties":{"id":{"type":"string","index":"not_analyzed"},"string":{"type":"string"},"created":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"modified":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"}},"type":"object"}}}}'

curl -XPOST 'http://localhost:9200/test_index/test_models/_bulk' -d '{"index":{"_index":"test_index","_type":"test_models","_id":"test-model"}}
{"TestModel":{"id":"test-model","string":"Analyzed for terms","created":"2012-01-01 00:00:00","modified":"2012-02-01 00:00:00"}}
'

curl -XPOST 'http://localhost:9200/test_index/test_models/_refresh' -d '{}'

curl -XGET 'http://localhost:9200/test_index/_mapping'

curl -XGET 'http://localhost:9200/test_index/test_models/_search' -d '{"query":{"match_all":{}},"size":10}'

この質問は、(超素晴らしい) ElasticSearch メーリング リストにも投稿されています。

https://groups.google.com/forum/?fromgroups#!topic/elasticsearch/Nxv0XpLDY4k

-DK

4

1 に答える 1

5

問題は _refresh コマンドにあります。

タイプは更新できません。インデックスのみです。更新コマンドを次のように変更しました。

curl -XPOST 'http://localhost:9200/test_index/_refresh'

そして、それは今修正されました!

于 2012-07-21T15:23:48.233 に答える