如何解决ElasticSearch 跨度接近查询未通过嵌套跨度查询产生预期结果
我有一个奇怪的场景。我有一个包含文本“6 Music Live Hour”的文档。 查询的第二部分 - span_term 匹配 "Hour" 时不会产生任何结果
{
"span_near" : {
"clauses" : [
{
"span_near" : {
"clauses" : [
{
"span_term" : {
"all_field" : {
"value" : "6","boost" : 1.0
}
}
},{
"span_multi" : {
"match" : {
"wildcard" : {
"all_field" : {
"wildcard" : "M*c","boost" : 1.0
}
}
},"boost" : 1.0
}
}
],"slop" : 0,"in_order" : true,"boost" : 1.0
}
},{
"span_term" : {
"all_field" : {
"value" : "Hour","boost" : 1.0
}
}
}
],"slop" : 2147483647,"boost" : 1.0
}
}
但是,当我将其更改为通配符查询时,它会产生预期的结果。见下文。
{
"span_near" : {
"clauses" : [
{
"span_near" : {
"clauses" : [
{
"span_term" : {
"all_field" : {
"value" : "6",{
"span_multi" : {
"match" : {
"wildcard" : {
"all_field" : {
"wildcard" : "Hour","boost" : 1.0
}
}
},"boost" : 1.0
}
}
],"boost" : 1.0
}
}
请任何人就我在第一个查询中做错了什么提出建议。
解决方法
将文本转换为小写,然后构建术语查询会产生预期的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。