私は次のsearch/citiesインデックスを持っています。ここで要素は名前と他のプロパティの束を持っています。私は、キー「Anahiem」、「ANA」と「サンタ」で3つのバケツを得る結果Elasticsearchは重複した結果を返します
{
"size": 0,
"query": {
"multi_match" : {
"query": "ana",
"fields": [ "cityName" ],
"type" : "phrase_prefix"
}
},
"aggs": {
"res": {
"terms": {
"field": "cityName"
},
"aggs":{
"dedup_docs":{
"top_hits":{
"size":1
}
}
}
}
}
}
:私は、次の集計検索を実行します。以下はその結果です:最後のバケットは、キー「サンタは」私は「ANA」を検索してもカントーとその理由(= 154 IDを持つ)同じ都市「サンタ・アナは」2つの異なるバケットに表示(た理由
"buckets": [
{
"key": "anaheim",
"doc_count": 11,
"dedup_docs": {
"hits": {
"total": 11,
"max_score": 5.8941016,
"hits": [
{
"_index": "search",
"_type": "City",
"_id": "310",
"_score": 5.8941016,
"_source": {
"id": 310,
"country": "USA",
"stateCode": "CA",
"stateName": "California",
"cityName": "Anaheim",
"postalCode": "92806",
"latitude": 33.822738,
"longitude": -117.881633
}
}
]
}
}
},
{
"key": "ana",
"doc_count": 4,
"dedup_docs": {
"hits": {
"total": 4,
"max_score": 2.933612,
"hits": [
{
"_index": "search",
"_type": "City",
"_id": "154",
"_score": 2.933612,
"_source": {
"id": 154,
"country": "USA",
"stateCode": "CA",
"stateName": "California",
"cityName": "Santa Ana",
"postalCode": "92706",
"latitude": 33.767371,
"longitude": -117.868255
}
}
]
}
}
},
{
"key": "santa",
"doc_count": 4,
"dedup_docs": {
"hits": {
"total": 4,
"max_score": 2.933612,
"hits": [
{
"_index": "search",
"_type": "City",
"_id": "154",
"_score": 2.933612,
"_source": {
"id": 154,
"country": "USA",
"stateCode": "CA",
"stateName": "California",
"cityName": "Santa Ana",
"postalCode": "92706",
"latitude": 33.767371,
"longitude": -117.868255
}
}
]
}
}
}
]
質問ですキー "アナ"とキー "サンタ")?
Val実際にはcityNameを分析したいので、 "San"または "Ana"で検索すると "Sant Ana"が返されます"重複したエントリを削除する方法はありますか?基本的に私が集める唯一の理由は重複を取り除くことです。 –
はい、回答を更新しました。 – Val
しかし、 "ana"を検索しても、検索はすべての文字列に対してpefixを行っているので、 "Santa ana"は返されません。 –