gpt4 book ai didi

ruby-on-rails - 如何在Elasticsearch中搜索多代

转载 作者:行者123 更新时间:2023-12-03 00:18:42 24 4
gpt4 key购买 nike

Elasticsearch的文章概述了如何基于一代人的搜索来查找对象:https://www.elastic.co/guide/en/elasticsearch/guide/current/grandparents.html

GET /company/country/_search
{
"query": {
"has_child": {
"type": "branch",
"query": {
"has_child": {
"type": "employee",
"query": {
"match": {
"hobby": "hiking"
}
}
}
}
}
}
}

如果我还想查询分支中以“liverpool”开头的 name怎么办?您如何修改此搜索以找到该内容?我不断收到格式错误,但似乎找不到有关如何在线嵌套查询的信息。

我已经尝试过了(它不起作用):
GET /company/country/_search
{
"query": {
"has_child": {
"type": "branch",
"query": {
"has_child": {
"type": "employee",
"query": {
"match": {
"hobby": "hiking"
}
}
},
"match": {
"name": "london"
}
}
}
}
}

我收到一条错误消息,说查询格式错误。

我尝试了 bool,但是它也不起作用;我不能在 bool(boolean) 中使用has_child。

最佳答案

我能够使其与bool query一起使用。

如果我正确理解了您的问题,那么您应该执行以下操作:

POST /company/country/_search
{
"query": {
"has_child": {
"type": "branch",
"query": {
"bool": {
"must": [
{
"has_child": {
"type": "employee",
"query": {
"match": {
"hobby": "hiking"
}
}
}
},
{
"match": {
"name": "liverpool"
}
}
]
}
}
}
}
}

如果希望查询为“OR”而不是“AND”,请使用 "should"而不是 "must"

这是我为解决该问题而设置的一些代码:

http://sense.qbox.io/gist/cf4babbbd25a3b7a26f3ea9ce9c1b686e37dbcb9

关于ruby-on-rails - 如何在Elasticsearch中搜索多代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33425622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com