0

elasticsearch-py api に関する初心者の質問。名前、住所、電話番号などのレコードのインデックスを作成しました。たとえば、python クライアントを使用してクエリを実行できます。

`elasticsearch.search(index = "index_name", q= 'first_name:"JOHN"')` 

適切な結果を取得します ただし、クエリを文字列パラメーターとして作成したい

first_name = "JOHN"
qu = "first_name:".join(first_name)
elasticsearch.search(index = 'index_name', q = qu)

クエリは失敗します。これらのタイプの動的クエリを作成するより良い方法はありますか?

4

2 に答える 2

1

通常、検索クエリはリクエスト ボディ検索として作成します。 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html

以下の例:

searchdata = essearch.search(index=indexname, body= {
    "query": {
        "filtered": {
          "query": {
            "query_string": {
              "query": "name:fred"
            }
          },
          "filter": {
            "bool": {
              "must": [

                {
                  "exists": {
                    "field": "fieldname"
                  }
                },
                {
                  "exists": {
                    "field": "secondfieldname"
                  }
                }

              ]
            }
          }
        }
      },
      "size": 5000,
      "sort": [
         {
            "loggeddate": {
               "order": "desc"
            }
         }
      ]
    }
           ) 
于 2016-04-18T01:23:02.713 に答える