当前的弹性映射:
"properties": {
"content": {
"type": "text",
"term_vector":"with_positions_offsets",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "russian"
}
}
字段“内容”包含网站抓取的结果,正好是从标签中剥离的“正文”标记内容页面。 任务是实现这种领域的三种搜索。 1.所有指定的单词 2.任何指定的单词 3.正好在文中
1例 - match_phrase 2个案例 - 匹配 对于3个案例 - 必须有match_phrase而不进行分析,因为使用“俄语”分析器它会发现这个不同的结尾和变形的语言
没有运气地试过这个问题:
"query": {
"bool": {
"must": [
{
"match_phrase": {
"content": {
"query": "some search phraze",
"analyzer": "keyword"
}
}
}
]
}
答案 0 :(得分:1)
对于exact
匹配查询,请使用Term Query
。因此,您的查询应如下所示:
GET _search
{
"query": {
"term" : { "content.keyword" : "some search phraze" }
}
}
答案 1 :(得分:0)
自我回答
This回答给了我很多帮助
添加额外字段" raw"解决了财产问题。
"properties": {
"content": {
"type": "text",
"term_vector":"with_positions_offsets",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
},
"raw": {
"type": "text",
"index": "analyzed"
}
},
"analyzer": "russian"
}
}
搜索查询如下所示:
"query": {
"bool": {
"must": [
{
"match_phrase": {
"content.raw": {
"query": "some search phraze",
}
}
}
]
}