elasticsearch - Elasticsearch嵌套对象自动完成

标签 elasticsearch

我正在尝试将自动完成功能添加到我在 Elasticsearch 中创建的嵌套对象中。

我设置的映射设置:

"mappings": {
    "doc": {
        "object": {
            "type": "nested",
            "properties": {
                "author": {
                    "type": "text",
                    "analyzer": "hebrew"
                },
                "content": {
                    "type": "text",
                    "analyzer": "hebrew"
                },
                "title": {
                    "type": "text",
                    "analyzer": "hebrew"
                }, 
                "suggest" : { "type": "completion"}
            }
       }
   }
}

我使用嵌套对象,因为我还使用 fscrawler 将 json 文档添加到索引中。

我使用以下查询:

{
    "suggest": {
        "suggester" : {
            "prefix" : "test", 
            "completion" : { 
                "field" : "object.suggest"
            }
        }
    }
}

但问题是,无论我输入什么,我都得不到任何结果。

我是否正确设置了映射?还是查询错误?

最佳答案

最终对我有用的是为每个我想使用自动建议的对象字段使用建议子字段,例如,如果我想对“作者”和“标题”字段使用自动建议,那么我' d 使用:

"mappings": {
"doc": {
    "object": {
        "type": "nested",
        "properties": {
            "author": {
                "type": "text",
                "analyzer": "hebrew",
                "fields": {
                    "exact": {
                        "type": "text",
                        "analyzer": "hebrew_exact"
                    },
                    "suggest": {
                        "type": "completion",
                        "analyzer": "simple",
                        "preserve_separators": false,
                        "preserve_position_increments": true,
                        "max_input_length": 50
                    }
                }
            },
            "content": {
                "type": "text",
                "analyzer": "hebrew_exact"
            },
            "title": {
                "type": "text",
                "analyzer": "hebrew",
                "fields": {
                    "exact": {
                        "type": "text",
                        "analyzer": "hebrew_exact"
                    },
                    "suggest": {
                        "type": "completion",
                        "analyzer": "simple",
                        "preserve_separators": false,
                        "preserve_position_increments": true,
                        "max_input_length": 50
                    }
                }
            }
        }
    }
}

要使用它,我会使用文档中的建议器搜索“object.title.suggest”字段。

关于elasticsearch - Elasticsearch嵌套对象自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54787993/

相关文章:

ElasticSearch aggs 仅返回 10 个桶

elasticsearch - 具有 group by 和 where 条件的 Elastic Search Sum 聚合

c# - 我怎样才能 "pass through"来自 NEST Elasticsearch 查询的原始 json 响应?

elasticsearch - Grafana与Elasticsearch的联系

elasticsearch - 无法访问elastalert的警报部分内的数据

TShark 的 Elasticsearch 映射

elasticsearch - 如何在kibana的字段值中搜索 “-”?

regex - ElasticSearch 短语查询中的正则表达式查询

elasticsearch - 在模板文件中指定elasticsearch索引别名

elasticsearch - Python spark Dataframe 到 Elasticsearch