ElasticSearch: точное значение из массива значений - PullRequest
0 голосов
/ 21 мая 2018

set mapping

"set": {
                        "type": "string",
                        "index": "not_analyzed",
                        "doc_values": true,
                        "fields": {
                           "criteria": {
                              "type": "string",
                              "norms": {
                                 "enabled": false
                              },
                              "analyzer": "analyzer_exact"
                           },
                           "fulltext": {
                              "type": "string",
                              "norms": {
                                 "enabled": false
                              },
                              "analyzer": "insight_analyzer_fulltext"
                           }
                        }
                     }

Установить значения:

"set": [
                     "Cleaning",
                     "Physical Abilities"
                  ],

При запросе этого,

{
  "fields": ["set"], 
  "query": {
    "query_string": {
      "default_field": "FIELD",
      "query": "(set.criteria: \"cleaning\")"
    }
  }
}

Результат:

Очистка

Физические способности

Это существующая система, моя задача - разделить точный результат и сопутствующий результат.Что означает для вышеупомянутого запроса, что результат должен быть только «очисткой».

Есть ли способ получить его, изменив запрос или сопоставив данные?

1 Ответ

0 голосов
/ 21 мая 2018

Я не очень хорошо понял, но если вы хотите возвращать только результаты, которые соответствуют точному значению, вы должны использовать «термин запроса»:

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html

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