2017-03-06 9 views
0

恐らく基本的な質問です。ところで、すべてのインデックスフィールドを検索し、別のフィールドの特定の固定値を持つ必要があります。 どうすればいいですか?例えば、私は成功せずに多くのオプションを試してみましたquery("aValue", array_of_models)固定フィールドですべてのフィールドを検索

:現在

私はシンプルを持って

query({ 
    "query": { 
    "bool": { 
     "query": "aValue", 
     "filter": { 
     "term": { 
      "published": "true" 
     } 
     } 
    } 
    } 
}) 

私は同じ検索を使用しているためで検索するフィールドを指定することを避けることを好むだろう異なるモデルのためのparams。

+1

2倍ブール必須のクエリは、あなたの要件を満たす必要があります。 1つは固定語で、1つは任意のフィールドでの一致です。ワイルドカードを使用しない限り、フィールドを指定することを避けるために私が知っている唯一の方法は、 '_all'を使うことです。 '_all'の使用は推奨されません。したがって、フィールドを指定するのが最善です。 – ryanlutgen

+0

@ryanlutgen genericフォーム(query( "value"))はどこでも検索できますが、DSLでいくつかのオプションを指定すると、同じことができません... – Mat

+0

現在、私は '_all'を使用しています - 私は現在の作業ペイロードで返信を書いたばかりです – Mat

答えて

1

私はおそらくそれが最適化されたが、作品はありませんが、解決策を見つけた:

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "match": { 
      "_all": "aValue" 
      } 
     } 
     ], 
     "filter": { 
     "term": { 
      "published": true 
     } 
     } 
    } 
    } 
} 
+0

私は今の自分の答えを受け入れ、誰かがより良い解決策を持っている場合はそれを書いてください – Mat

0

私はあなたの意図を正しく理解しているかどうかはわかりません。

_allフィールドは、デフォルトで有効です。したがって、特別なマッピングがない場合は、すべてのインデックスフィールドがテキストストリングとして_allフィールドに追加されます。

はあなたのために働く必要があり、このような単純なクエリと

を使用することができます。

GET my_index/_search 
{ 
    "query": { 
    "simple_query_string": { 
     "query": "aValue", 
     "fields": [] 
    } 
    } 
} 

どちらのクエリタイプにもパラメータが含まれています。これは、使用例IMHOで十分です。

+0

これは私が探しているのではなく、すべてのフィールドを検索し、特定のフィールドに特定の値を持たせる必要があります – Mat

+0

現在の例は** all * *フィールドには、特定のフィールドを入力すると、検索がこれらのフィールドに限定されます。特定のフィールドをフィルタリングすることはできますが、それ以上の情報がなければ、それを伝えるのは難しいです。 – cinhtau

+0

私は答えとして私のケースのための実用的な解決策を書いた – Mat

関連する問題