11

インデックスクエリを実行するためにどのURLを使用しますか?

ここに次のように表示されますが、それを行うためのURLも何ですか? http://www.elasticsearch.org/guide/reference/query-dsl/indices-query.html

Elastic Searchでクエリを実行する方法を知っている唯一の方法は、URIを使用することです。

http://localhost:9200/myindex

私が抱えている問題は、異なるドキュメントを持つ複数のインデックスがあることですmyindex1 myindex2 myindex3

そして、myindex1とmyindex2(またはmyindex2とmyindex3)に対してクエリを実行できるようにしたい

これは可能ですか?また、match_allクエリやTermsクエリのようにインデックスクエリをQueryDSLと組み合わせることができます。

http://www.elasticsearch.org/guide/reference/query-dsl/terms-query.html

サンプルURLの例と、可能であればリクエストの本文に何が含まれるかを示してください。そうすれば、アイデアを得ることができます。

4

4 に答える 4

16

あなたは試すことができます:

 curl http://localhost:9200/myindex1,myindex2/_search?q=*

または

 curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{
    // your query here
 }'

それはあなたが探しているものですか?

于 2012-11-28T21:46:53.607 に答える
7

センスプラグインを使用している場合は、次のように書くことができます

 POST myindex1/_search
{
"query": {"match_all": {}}
 }
于 2015-04-15T06:15:13.283 に答える
6

これは、いくつかの異なる方法で行うことができます。

1)フィールドでのインデックスクエリmyindex1myindex2用語クエリを使用しtitleます。

curl -XPOST http://localhost:9200/_search -d '{
  "query": {
    "indices": {
      "indices": [
        "myindex1",
        "myindex2"
      ],
      "query": {
        "terms": {
          "title": [
            "foo",
            "bar"
          ]
        }
      }
    }
  }
}'

2)URIで検索するインデックスを指定する(まったく同じ用語のクエリを使用)。

curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{
  "query": {
    "terms": {
      "title": [
        "cookies",
        "cake"
      ]
    }
  }
}'

はい、 2つの例のいずれかで、用語クエリをmatch_allクエリ(または実際には他のクエリ)と交換できます。2番目の例でmatch_allクエリを実行する方法は次のとおりです。

curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{
  "query": {
    "match_all": {}
  }
}'
于 2012-12-09T19:12:13.447 に答える
1

エラスティックヘッドプラグインをインストールすることをお勧めします。そのインターフェイスの3番目のタブには、クエリビルダーがあります。インデックスを選択し、クエリを作成して、それが生成するdslクエリを確認できます。これは、dslクエリ構文を理解するための簡単な方法です。

http://mobz.github.io/elasticsearch-head/

于 2013-08-24T00:22:01.343 に答える