【发布时间】:2016-09-13 08:18:41
【问题描述】:
我有一个分析字段,其中包含以下内容:'quick brown foxes' 和另一个包含:'quick brown fox'。
我想找到那些明确包含“狐狸”(不是狐狸)的文档。据我所知,我必须创建一个包含已分析和未分析子字段的多字段(请参阅下面的映射)。但是我该如何查询呢?
这是一个示例(请注意,我的分析仪设置为匈牙利语,但我想这在这里无关紧要):
{
"settings" : {
"number_of_replicas": 0,
"number_of_shards": 1,
"analysis" : {
"analyzer" : {
"hu" : {
"tokenizer" : "standard",
"filter" : [ "lowercase", "hu_HU" ]
}
},
"filter" : {
"hu_HU" : {
"type" : "hunspell",
"locale" : "hu_HU",
"language" : "hu_HU"
}
}
}
},
"mappings": {
"foo": {
"_source": { "enabled": true },
"properties": {
"text": {
"type": "string",
"analyzer": "hu",
"store": false,
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed",
"store": false
}
}
}
}
}
}
}
我尝试过的查询:match、term、span_term、query_string。所有都在 text 和 text.raw 字段上执行。
【问题讨论】:
标签: elasticsearch elasticsearch-2.0