gpt4 book ai didi

javascript - Elasticsearch 关键词不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:43 24 4
gpt4 key购买 nike

我正在 Elasticsearch 数据库中进行搜索操作。我需要的是,如果我给出关键字“react”进行搜索,它应该只给出与关键字“react”匹配的结果,如果关键字是“react-router”,结果应仅包含“react-router”。问题是,如果我给出搜索关键字 'react' ,也会检索到与 'react-router' 关键字匹配的结果。有没有比 match-phrase 更好的选择,我尝试了正则表达式和通配符,但没有用。如何解决这个问题

`const searchTags = (tag) => {
const answerPush = [];
return new Promise((resolve, reject) => {
client.search({
index : constants.QUESTIONNAIRE_INDEX,
type : constants.QUESTIONS_TYPE,
scroll : constants.SCROLL,
body : {
query : {
match_phrase : {
tags : tag
}
}
}
},
function getMoreUntilDone(err, res) {
if (err) {
reject(err);
return;
} else {
res.hits.hits.forEach(function(hit) {
answerPush.push(hit._source);
});
if (res.hits.total > answerPush.length) {
client.scroll({
scrollId: res._scroll_id,
scroll: constants.SCROLL
}, getMoreUntilDone);
} else {
const answerArray = [];
answerPush.map(val => {
answerArray.push(val);
});
const result = {
questions: answerArray
};
resolve(result);
}
}});
});
};

`

最佳答案

要通过精确匹配进行搜索,您必须使用术语查询。

它可能在您的情况下运行良好,请记住,Elasticsearch 将分析/索引您的字符串,例如,react-redux 将由于“-”而被“拆分”为两个关键字

您需要在映射中配置策略: https://discuss.elastic.co/t/how-to-search-for-terms-containing-hyphen-on--all-field/81335

关于javascript - Elasticsearch 关键词不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46886559/

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