Порядок сортировки с 4 условиями, включающими geo_point и японские символы - PullRequest
0 голосов
/ 09 октября 2018

У меня есть несколько документов о магазинах, как показано ниже.Как я могу получить запрос к:

  1. По убыванию number_fans в магазинах
  2. По убыванию number_articles в магазинах
  3. Закрыть с текущей позиции заказа
  4. Порядок японского алфавита

Индексирование данных

curl -XPUT "localhost:9200/shops/doc/1" -H 'Content-Type: application/json' -d'  
{
 "id": 1,
 "name": "中村 裕美子",
 "furigana_name": "木村 稔",
 "number_fans": 4,
 "number_articles": 1,
 "group_name": "有限会社 伊藤",
 "location": {
     "lat": 35.1284,
     "lon": 137.1446
     }
 }

curl -XPUT "localhost:9200/shops/doc/2" -H 'Content-Type: application/json' -d'  
{
 "id": 2,
 "name": "山田 明美",
 "furigana_name": "木村 稔",
 "number_fans": 3,
 "number_articles": 2,
 "group_name": "有限会社 佐藤",
 "location": {
     "lat": 35.1177,
     "lon": 137.1915
     }
 }

curl -XPUT "localhost:9200/shops/doc/3" -H 'Content-Type: application/json' -d'  
{
 "id": 3,
 "name": "松本 晃",
 "furigana_name": "松本 裕美子",
 "number_fans": 3,
 "number_articles": 3,
 "group_name": "株式会社 青山",
 "location": {
     "lat": 35.1098,
     "lon": 137.4242
     }
 }

Это мой запрос, но в нем отсутствует фильтр порядок символов японского алфавита и не уверен, что это правильный порядок для других.

curl -XPOST "localhost:9200/shops/_search" -H 'Content-Type: application/json' -d'  
{
"query": {
    "match_all" : {}
},
"sort": [
    { "number_fans": { "order": "desc" } },
    { "number_articles": { "order": "desc" } },
    { "_geo_distance" : {
            "location": {
                "lat": 35.13914,
                "lon": 137.18779
            },
            "order" : "desc",
            "unit" : "km"
        }
    }
],
"size": 200
}

Спасибо заранее!

1 Ответ

0 голосов
/ 10 октября 2018

Для # 4 вам нужно отсортировать по столбцу furigana_name, в котором должны быть буквы японского алфавита, хирагана или катакана.

Кажется, что ваши примеры данных неверны, так как имя furigana_name имеет имя кандзи другого человека.Например, имя первой записи «中 村 裕美子» должно иметь furigana_name «な か む ら ゆ み こ» (думаю, произношение может быть неправильным).

...