gpt4 book ai didi

search - 如何使 Elasticsearch 仅匹配完整字段

转载 作者:行者123 更新时间:2023-12-02 23:01:20 26 4
gpt4 key购买 nike

我有一个查询,看起来像这样:

((company_id:1) AND (candidate_tags:"designer"))

但这也匹配 candidate_tagsinteraction designer的用户。 如何排除这些?

这是我的完整搜索正文:
{
"query": {
"filtered": {
"query": {
"query_string": {
"query":
"((company_id:1) AND (candidate_tags:\"designer\"))"
}
}
}
}
"sort":{
"candidate_rating":{
"order":"desc"
},
"candidate_tags",
"_score"
}
}

额外信息

现在知道了一个答案: candidate_tags是一个字符串数组,并且说候选人有标签 interaction designertalent,搜索 talent应该是一个匹配项,而 designer应该不是一个匹配项。

最佳答案

candidate_tags字段设置为not_analyzed或使用keyword分析器进行分析。

{
"mappings": {
"test": {
"properties": {
"candidate_tags": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}

或将 raw字段添加到您现有的映射中,如下所示:
{
"mappings": {
"test": {
"properties": {
"candidate_tags": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
}

对于第一个选项,请使用与现在相同的查询。
对于第二个选项,请使用 candidate_tags.raw,如下所示:
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "((company_id:1) AND (candidate_tags.raw:\"designer\"))"
}
}
}
}
...

关于search - 如何使 Elasticsearch 仅匹配完整字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33757901/

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