gpt4 book ai didi

mysql - Elasticsearch 6.2 : autocomplete search from MySQL

转载 作者:行者123 更新时间:2023-11-29 17:34:48 26 4
gpt4 key购买 nike

首先,我想说我使用Elasticsearch和Logstash 6.2,由于大更新,很多主题不兼容。在发布我的之前我看了两遍。 :)

我使用 MySQL 作为数据库,并使用 Logstash 6.2 和 JDBC,自动传输 Elasticsearch 6.2 中的行。从这一边来看,一切正常!

但是,我正在尝试在 Node/Express 项目中使用 Elasticsearch 作为搜索引擎。我想创建一个自动完成搜索栏,如本教程 Leveraging the Power of Elasticsearch: Autocomplete and Fuzzy Search 中所述。 .

问题是我无法启用自动完成,因为我从 MySQL 加载的数据是字符串而不是完成类型:

Illegal_argument_exception, reason:Field [extid] is not a completion suggest field, status:400

因此,对于 getSuggestions 函数,我尝试这样做:

function getSuggestions(text, size){
return elasticClient.search({
index: indexName,
type: indexType,
body: {
suggest: {
extidSuggester: {
text: text+'~',
term: {
field: "extid",
size: size
}
},
nameSuggester: {
text: text+'~',
term: {
field: "name",
size: size
}
}
}
}
});
}

这不会给我自动完成功能。

解决方案可能是过滤 Logstash 配置中的目标列并强制完成的类型。有人知道如何执行此操作吗?

还有其他解决方案可以解决我的问题吗?

最佳答案

我终于回答了自己。

当我创建映射时,我使用了 github 上找到的默认映射。 .

我向此映射添加了所需字段的类型完成,它解决了我的问题。

就这么简单!

关于mysql - Elasticsearch 6.2 : autocomplete search from MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50373746/

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