“ question_tag:弹性搜索
question_content:这是我关于stackoverflow弹性搜索的第一个问题”
以上是存储在弹性搜索中的示例字段
我想知道在“ question_content”之后是否存在短语“弹性搜索”。有办法吗?
例如上述,答案应为是。
例如
“ question_tag:弹性搜索
question_content:这是我关于stackoverflow上Java的第一个问题”
答案应为否。
答案 0 :(得分:0)
我建议创建两个不同的字段question_tag
和question_content
,而不是通过将所有内容存储在单个文件中来使事情变得复杂。
因此您的映射应如下所示:
PUT myindex
{
"mappings": {
"_doc": {
"properties": {
"question_tag": {
"type": "keyword"
},
"question_content": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
}
}
您可以索引您的文档。例如:
PUT myindex/_doc/1
{
"question_tag": "elastic search",
"question_content": "This is my first question about elastic search on stackoverflow"
}
PUT myindex/_doc/1
{
"question_tag": "elastic search",
"question_content": "This is my first question about Java on stackoverflow"
}
然后,您可以使用match_phrase
查询来获取具有特定短语的文档。
GET myindex/_search
{
"query": {
"match_phrase" : {
"question_content" : "elastic search"
}
}
}
有关match phrase的更多信息。