gpt4 book ai didi

elasticsearch - 在Elasticsearch中,如何在仍使用通配符的情况下提升所选术语?

转载 作者:行者123 更新时间:2023-12-02 23:06:22 24 4
gpt4 key购买 nike

我无法从文档中找出如何跨多个字词进行通配符搜索,而只能提高/降低一些条件。

我有一个类似JSON的构造:

{
'indices_boost': {
'football': 1.2,
'horse-race': 1.1
},
'query': {
'bool': {
'minimum_number_should_match': 2,
'should': [
{
'wildcard': {
'name': {
'boost': 1.2,
'value': 'polan*'
}
}
},
{
'wildcard': {
'nicknames': u
'polan*'
}
},
{
'wildcard': {
'horses': 'polan*'
}
},
{
'wildcard': {
'jockeys': 'polan*'
}
},
{
'wildcard': {
'parent': {
'boost': 0.7,
'value': 'polan*'
}
}
},
{
'terms': {
'minimum_match': 1,
'state': [
'upcoming',
'live'
]
}
}
]
}
},
'size': 5
}

目的是应增强 name字段上的通配符匹配,而 parent字段上的通配符匹配仍很重要,但不应放在匹配 name的结果上方。

该特定查询即使应会也不返回结果(带有通配符的 _all查询返回结果)。

最佳答案

您可以使用'boost':0.0消除匹配项对得分的影响。

如果为字段指定了非默认分析器,则这些字段可能包含与_all字段不同的术语,这可能解释了通配符为何对_all有效但对于单个字段无效的原因。

关于elasticsearch - 在Elasticsearch中,如何在仍使用通配符的情况下提升所选术语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433424/

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