2

特定のポイントから 10 マイル以内のアイテムを検索するために、elasticsearch クエリを実行したいと考えています。

投稿でそれを行う方法は知っていますが、uri 内のすべてで get を使用したいと思います。

以下の例を見つけましたが、うまくいきません。

http://localhost:9200/items/item/_search?{%22query%22:{%22filtered%22:{%22query%22:{%22match_all%22:{}},%22filter%22:{%22geo_distance%22:{%22distance%22:%220.1km%22,%22location%22:{%22lat%22:46.884106,%22lon%22:-71.377042}}}}}}

これを行う方法はありますか、または投稿を使用して立ち往生していますか?

4

1 に答える 1

3

重要なのはsource=パラメータです。_source と混同しないでください。

http://localhost:9200/items/item/_search?source={%22query%22:{%22filtered%22:{%22query%22:{%22match_all%22:{}},%22filter%22:{%22geo_distance%22:{%22distance%22:%220.1km%22,%22location%22:{%22lat%22:46.884106,%22lon%22:-71.377042}}}}}}

?q= とhttp://www.elasticsearch.org/guide/reference/api/search/uri-request/にリストされている他のいくつかのパラメーターを試してみましたが、うまくいきませんでした (ソースはリストされていません)。

http://www.elasticsearch.org/guide/reference/api/を見つけましたが、一番下に

クエリ文字列のリクエスト ボディ

非 POST 要求の要求本文を受け入れないライブラリの場合は、代わりに要求本文をソース クエリ文字列パラメーターとして渡すことができます。

したがって、クエリ/フィルター要求を構成し、すべてを 1 行に設定して、source パラメーターに送信します。

source= で q= パラメータを使用しないでください。競合してクエリが壊れますが、size= と from= を試してみましたが、source で問題なく動作します。

于 2013-08-09T20:59:55.150 に答える