2016-06-24 7 views
0

フィルタでワイルドカードを使用すると結果が返されますが、結果の実際のテキストを使用してクエリを実行するとクエリが0ヒットを返します。エラスティック検索ワイルドカードクエリがテキストクエリで動作しない

これは

{ 
"query": { 
"filtered": { 
    "query": { "match_all": { } }, 

    "filter": { 
    "nested": { 
     "path": "houses", 
     "query": { 
     "filtered": { 
      "query": { "match_all": { } }, 

      "filter": { 
      "wildcard": { 
       "houses.name": "????" 
      } 
      } 

     } 
     } 
    } 
    } 
    } 
} 
} 

の作品、それが「イヴの庭園」という名前の家を返す場合、これは何も返しません。

{ 
"query": { 
"filtered": { 
    "query": { "match_all": { } }, 

    "filter": { 
    "nested": { 
     "path": "houses", 
     "query": { 
     "filtered": { 
      "query": { "match_all": { } }, 

      "filter": { 
      "wildcard": { 
       "houses.name": "Eve gardens" 
      } 
      } 

     } 
     } 
    } 
    } 
    } 
} 
} 

助けてください!

答えて

1

thisを参照してください:

クエリhouses.nameあたりのようではない、全体としてEve gardensとしてgardensEve gardenseveとしてトークン化して格納される意味analyzed文字列のようです。ドキュメントごとに

ワイルドカードクエリは用語で動作します。解析されたフィールドを照会するためにそれらを使用すると、フィールド全体ではなくフィールド内の各用語を検査します。

あなたは

"wildcard": {"houses.name": "Eve gardens"} 

を行うのであれば、これは動作しません。

は、それはあなたの結果をフェッチする必要があり

"wildcard": {"houses.name": "eve*"} 

を試してみてください。これが役に立ちますようお願い致します..

+0

これはうまくいきました!ありがとうございました!! – user2599038

+0

喜んでお手伝いします。あなたは答えを受け入れることができます.. – Richa

+0

遅れて申し訳ありません。ありがとうございました! – user2599038