3

ElasticSearchに関する私の知識を許してください。次のようなドキュメントを含む Elasticsearch コレクションがあります。

{
    "date": "2013-12-30T00:00:00.000Z",
    "value": 2,
    "dimensions": {
        "region": "Coimbra District"

    }
}
{
    "date": "2013-12-30T00:00:00.000Z",
    "value": 1,
    "dimensions": {
        "region": "Federal District"        
    }
}
{
    "date": "2013-12-30T00:00:00.000Z",
    "value": 1,
    "dimensions": {
        "region": "Masovian Voivodeship"
    }
}

これら 3 つの json ドキュメントは、ES サーバーでインデックス化されます。私はアナライザータイプを提供していません (また、提供する方法もわかりません:)) スプリングデータElasticsearchを使用し、次のクエリを実行して、地域「Masovian Voivodeship」または「Federal District」のドキュメントを検索しています:

{
  "query_string" : {
    "query" : "Masovian Voivodeship OR Federal District",
    "fields" : [ "dimensions.region" ]
  }
}

2 ヒットを返すことを期待しています。ただし、3 つのドキュメントすべてが返されます (おそらく、3 つ目のドキュメントに地区があるため)。EXACT マッチを実行して 2 つのドキュメントのみを提供できるようにクエリを変更するにはどうすればよいですか? 私は次の方法を使用しています:

QueryBuilders.queryString(<OR string>).field("dimensions.region")

QueryBuilders.termsQueryQueryBuilders.inQueryおよび(配列を使用して)試しQueryBuilders.matchQueryましたが、運がありません。

誰でも助けてもらえますか?前もって感謝します。

4

1 に答える 1