Поиск и сортировка по одному и тому же имени поля в ElasticSearch - PullRequest
0 голосов
/ 21 мая 2018

Я новичок в ElasticSearch и пытаюсь использовать его над данными, где человек может искать в некотором тексте (скажем, entity.name) и применять сортировку в списке результатов.

Ниже приведено мое отображение:

    {
      "entity": {
        "dynamic_templates": [
          { "text_custom_field_template": {
            "match":              "ltd_text_*",
            "mapping": {
              "type":           "text"
            }
          }}
        ],
        "properties": {
          "id": {
            "type": "long",
            "index": "not_analyzed"
          },
          "treeId": {
            "type": "long",
            "index": "not_analyzed"
          }
          "entity.name": {
            "type": "text",
            "fielddata": true,
            "fields": {
              "sort": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
          "entity.url": {
            "type": "text"
          },
          "entity.details": {
            "type": "text"
          }
        }
      }
    }

    id       name            details     is_marked
    13    ABC entity        details        1
    14    BCD  entity        details        1
    15    DEF  entity        details        1
    16    EFG  entity        details        1
    17    GHI                details        1
    18    Untitled entity    details        1

Я хочу найти всю сущность с именем, имеющим сущность, а затем отсортировать результат по алфавиту.Если я бегу ниже по упругому поиску, я получаю одинаковые результаты для asc и desc:

    {
       "query":{
          "multi_match":{
             "query":"entity",
             "fields":[
                "entity.details^1.0",
                "entity.name^4.0",
             ],
             "type":"best_fields",
             "operator":"AND",
             "slop":0,
             "prefix_length":0,
             "max_expansions":50,
             "lenient":false,
             "zero_terms_query":"NONE",
             "boost":1.0
          }
      },
        "sort":{
        "entity.name.sort" : "asc"
       }
    }

    Result :
    BCD
    EFG
    GHI
    Untitled
    ABC

Также есть способ поддержать то же самое (поиск и сортировка) для нового настраиваемого поля типа текста, которое может бытьдобавлено клиентом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...