我是ElasticSearch的新手,所以这是一个非常基本的问题。
如果我将字段映射为索引中的关键字,那么文档是否应包含该字段的字符串数组?或者一个字符串,其中所有关键字都用空格分隔?
如果我的索引看起来像这样(关键字是我们感兴趣的话):
{
"esidx_j_cv" : {
"mappings" : {
"j_cv" : {
"properties" : {
"Id" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Keyword" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
}
文档应如下所示:
{
"_index" : "esidx_j_cv",
"_type" : "j_cv",
"_id" : "2fab7349-c13f-447a-95fa-984df6836c14",
"_score" : 1.0,
"_source" : {
"Id" : "2fab7349-c13f-447a-95fa-984df6836c14",
"Name" : "Jim Bloggs",
"Keyword" : [
"San",
"Andreas",
"Fault",
"California"
]
}
}
或者像这样:
{
"_index" : "esidx_j_cv",
"_type" : "j_cv",
"_id" : "2fab7349-c13f-447a-95fa-984df6836c14",
"_score" : 1.0,
"_source" : {
"Id" : "2fab7349-c13f-447a-95fa-984df6836c14",
"Name" : "Jim Bloggs",
"Keyword" : "San Andreas Fault California"
}
}
谢谢,
亚当。
答案 0 :(得分:0)
使用数组将是最惯用的,这将是我的建议。您可以像这样查询它(此查询实际上可以使用任一选项):
GET index/_search
{
"query": {
"match": {
"Keyword": "California"
}
}
}