对于Elasticsearch中新闻标题的字段,适当的映射是什么?

时间:2018-06-25 17:06:21

标签: elasticsearch mapping

我有一个用于存储新闻文章内容和元数据的文档。我应该如何映射字段title,这是新闻标题的短文本值?我希望能够搜索完全匹配(keyword类型),但是同时我想对其应用一些分析器(text类型)。

3 个答案:

答案 0 :(得分:1)

title字段保留为text,并使用custom analyzer

我不知道您对分析器的要求是什么,但是您可以使用索引模板作为索引并定义自定义分析器,如下所示:

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"
        }
      }
    }
  }
}

答案 1 :(得分:1)

使用索引映射中的字段将其存储为文本和关键字。

{
    "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

答案 2 :(得分:0)

您是否尝试过重复该字段?,那么您将有2个字段,一个字段的类型为keyword,另一个字段的类型为text