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