Каково подходящее сопоставление для поля, которое является заголовком новостной статьи в Elasticsearch? - PullRequest
0 голосов
/ 25 июня 2018

У меня есть документ для хранения содержимого новостных статей и метаданных.Как мне сопоставить поле title, которое является кратким текстовым значением заголовка новостной статьи?Я хочу иметь возможность искать точное совпадение (тип keyword), но в то же время я хочу применить к нему какой-либо анализатор (тип text).

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Оставьте поле title как text и используйте пользовательский анализатор

Я не знаю, каковы ваши требования к анализатору, но вы можете использовать шаблон индекса для своего индекса и определитьпользовательский анализатор, как показано ниже:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_custom_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "char_filter": [
            "html_strip"
          ],
          "filter": [
            "lowercase",
            "asciifolding"
          ]
        }
      }
    }
  },
  "mappings": {
    "doc_type": {
      "properties": {
        "title": {
          "type": "text",
          "analyzer": "my_custom_analyzer"
        }
      }
    }
  }
}
0 голосов
/ 26 июня 2018

Используйте поля в вашем отображении индекса, чтобы сохранить его как текст и ключевое слово.

{
    "my-index": {
        "mappings": {
            "_doc": {
                "properties": {
                    "title": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword"
                            }
                        }
                    }
                }
            }
        }
    }
}

Чтобы использовать анализируемое поле, обратитесь к разделу «заголовок».Чтобы использовать поле ключевого слова, обратитесь к «title.keyword».

Дополнительная информация: https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-fields.html

0 голосов
/ 25 июня 2018

Вы пытались дублировать поле ?, тогда у вас будет 2 поля, одно с типом keyword, а другое с text типом

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