2

国ごとに異なる _type マッピングを含むエラスティック検索インデックスを設定しました。

したがって、「us」「au」「uk」などのマッピングがあります。

各マッピングには、タイプ「geo_point」の位置マッピングが含まれます

異なる _types を追加する前

私のクエリの並べ替えは次のようになります。

"sort" : [
    {

            "_geo_distance" : {
            "postcode.location" : [' . $mylocation_long . ',' . $mylocation_lat . '], 
            "order" : "asc",
            "unit" : "km"
        }
    }
],

データに _types を追加してマッピングすると、これは機能しなくなります。代わりに、次のように指定します。

 "sort" : [
    {

            "_geo_distance" : {
            "$country.location" : [' . $mylocation_long . ',' . $mylocation_lat . '], 
            "order" : "asc",
            "unit" : "km"
        }
    }
],

これはうまくいきます。

ただし、単一の国を超えてクエリを実行する必要がある場合があります。したがって、「us.location」に設定するのは正しくなく、機能しません。

この場合、国がわからず、マップされた場所で並べ替える必要がある場合、この並べ替えを機能させるにはどうすればよいですか。

それとも、これを行うことができず、これが機能するためにはすべてのドキュメントが同じ _type を持っている必要がありますか?

4

2 に答える 2

0

/index/type/_search ではなく /index/_search で作業クエリを指定するとどうなりますか?

于 2013-08-06T06:42:24.213 に答える