我正在建立一个弹性搜索索引,并希望它的行为(返回结果)某种方式。我已经建立了父母/孩子的关系。
curl -XPUT 'http://127.0.0.1:9200/parent/' -d '
{
"mappings": {
"parent": {},
"child": {
"_parent": {
"type": "parent"
}
}
}
} '
我已经用一些“父”文档和一堆父文档设置正确的“子”文档填充了它。
当我使用普通搜索查询搜索内容时,我当然会返回所有匹配的文档。父文档和子文档,但两者之间没有联系。如果我使用has_child筛选器搜索内容,它将正确地搜索子文档,并向我返回匹配的父文档:
curl -XGET 'http://127.0.0.1:9200/parent/_search' -d '
{
"query": {
"has_child": {
"type": "child",
"query": {
"match": {
"detail": "Stuff I Want To Match"
}
}
}
}
}'
问题是,我想搜索孩子,并在一个文档中找回父母和孩子。有没有办法做到这一点?亲子关系是不是搞错了?
我最近也想做同样的事。我想出了将父文档和子文档打印成一个elasticsearch结果。但理想情况下,它可以将父块和子块放入一个json块中。
下面是我现在可以做的事情,以便将所有匹配的父文档和子文档放在一起。
curl -XGET 'http://127.0.0.1:9200/indexname/parent,child/_search' -d '
{
"query": {
"bool": {
"should": [
{
"has_child": {
"type": "child",
"query": {
"match": {
"detail": "Stuff I Want To Match"
}
}
}
},
{
"match": {
"detail": "Stuff I Want To Match"
}
}
]
}
}
}'
假设您有1个父母和3个孩子符合您的条件,它将返回4个文档。1个父文档和3个子文档。我想您可能希望只有3个文档,其中包含一些父字段和子字段。
那就是我接下来要解决的问题。
希望这对你有帮助。
问题内容: Book,User和Review说,我正在构建具有复杂模型的应用程序。 评论包含书籍和用户ID。为了能够搜索至少包含一个评论的“图书”,我已将“图书”设置为“评论”的父级,并且具有这样的路由。但是,我还需要找到撰写包含某些短语的评论的用户。 是否可以同时将书和用户作为评论的父级?有没有更好的方法来处理这种情况? 请注意,我无法更改数据建模的方式/不愿意这样做,因为数据已从持久性数据库传
Android Kotlin,<代码>api。openOrder返回类型为BaseResponse 我想要的代码是,如果配置文件。值不为null,API返回BaseResponse 但android studio提示,这种有趣的返回类型是任何,如何修复? 排除if-else用法,因为配置文件。值具有许多属性,并且具有配置文件。价值用户名,
使用ES(或Solr)建模productvariants让我大吃一惊 考虑(人为的例子): 不同的产品(如T恤) 每个产品都有一组属性(productid、名称、desc、品牌、颜色、知名度) 每个产品都有一组具有属性的productvariants(productvariantid(productid++大小的组合)、productid、大小、可用性、价格) 这似乎是product和Produc
问题内容: 简而言之,当不使用_geo_distance排序时,是否有一种方法可以返回地理距离? 更新:为澄清起见,我希望结果按随机顺序排列并包含距离。 问题答案: 是的,您可以使用脚本字段。 例如,假设您的文档具有一个名为的地理位置字段,则可以使用以下内容: (请注意,只是一个转义的单引号,所以真的是) 如果还希望返回该字段,则可以如下指定:
我有一个项目,其中我创建了一个BankAccount超级类和一个SavingsAccount子类。一切都很好,但我在返回我特别想要的字符串时遇到了麻烦。 示例:(裁剪) 驱动程序类将对BankAccount使用toString方法,并打印以下内容: (这对于这个超类来说是完美的) 但是,下面是SavingsAccount子类 调用SavingsAccount的toString方法时,它会打印: S
Wordpress的