相关疑难解决方法(0)

我怎样才能找回匹配的孩子?

考虑一个非常简单的模型,我们有位置,每个位置可以有零个或多个事件.位置将具有名称,描述和地理点数据(lon/lat)等属性.事件应附加到一个位置(其父级),并且应具有名称和描述.

{
    "location" : {
        "properties": {
            "name": { "type": "string", "boost": 2.0, "analyzer": "snowball" },
            "description": { "type": "string", "analyzer": "snowball" },
            "geo": { "type": "geo_point" },
            "exhibits": {
                "type": "nested",
                "properties": {
                    "name": { "type": "string", "boost": 2.0, "analyzer": "snowball" },
                    "description": { "type": "string", "analyzer": "snowball" }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是查询对其名称和描述执行全文搜索的子文档(事件).我希望得到匹配的事件,并能够获得他们的父位置的名称.我还想按位置坐标缩小结果集.我不想获得任何与查询不匹配的事件.在弹性搜索中有可能吗?我应该使用哪些类型的查询?

我已经尝试将事件作为一个数组属性放在位置(见上文)并使用nested查询,但它不返回我想要的那种结果(我认为它返回整个位置,包括所有事件,甚至是那些不匹配的事件我的查询).我已经尝试将事件放入一个单独的索引(映射?),提供_parent属性,然后top_children对位置执行查询,但我没有得到任何结果.

{
    "exhibit": {
        "_parent": { "type": "locations" },
        "properties": {
            "name": { "type": "string", "boost": 2.0, "analyzer": "snowball" }, …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

8
推荐指数
1
解决办法
3150
查看次数

标签 统计

elasticsearch ×1