我刚进入ES,对此没有太多经验,所以可能是我所缺少的。
我找到了以下文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html,基本上说明了如何进行通配符搜索。
我正在尝试查找文档中具有某些模式的所有消息。
因此,我使用Kibana Sense(弹性搜索查询用户界面)做到了这一点:
GET _search
{
"query": {
"wildcard" : {
"model.message": "my*"
}
}
}
为此,我试图获取所有以“我的”
开头的消息但是我没有结果...
这是我的文档结构的副本(或至少是第一行...)
"_index": "my_index",
"_type": "my_type",
"_id": "123456",
"_source": {
"model": {
"id": "123456",
"message": "my message",
有什么主意吗?
答案 0 :(得分:1)
您的示例文档实际上包含model.content.message
字段,但不包含model.message
字段,因此以下查询应该有效:
GET _search
{
"query": {
"wildcard" : {
"model.content.message": "my*"
}
}
}
答案 1 :(得分:0)
您可以分享您的地图吗?看来您需要使用嵌套查询:
GET /_search
{
"query": {
"nested" : {
"path" : "model",
"score_mode" : "avg",
"query" : {
"wildcard" : {
"model.message": "my*"
}
}
}
}
}
您可以了解有关嵌套查询here的更多信息。