gpt4 book ai didi

regex - elasticsearch span_near查询错误命中

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

我有一个包含xml文档的文本字段,我尝试在其中找到这种匹配项:
<Payer> [...] bic=\"123456789\" [...] </Payer>
使用以下查询:

{
"query": {
"span_near" : {
"clauses" : [
{ "span_term" : { "field" : "payer" }},
{ "span_term" : { "field" : "bic" }},
{ "span_term" : { "field" : "123456789" }},
{ "span_term" : { "field" : "payer"}}
],
"slop" : 500,
"in_order" : true
}
}
}

问题是,如果xml文档包含类似以下内容,有时我会得到错误的匹配:
<Payer>bic=\"111111111\"</Payer><Payee>bic=\"123456789\"</Payee><Payer>bic=\"222222222\"</Payer>

查询查找 PayeE而不是 PayeR。从 elastic Angular 来看,它仍然有效。

有什么主意可以阻止这种“贪婪”搜索吗?

this所知,regexp不是一个选择,因为“Elasticsearch(和lucene)不支持与Perl兼容的正则表达式的语法”。这意味着 regexp-query匹配标记,而不是整个字符串。

我还尝试制作最后一个 span_term(例如 /payer\\/payer</payer),但它什么也没找到。

最佳答案

您可以添加 span_not 查询:

Removes matches which overlap with another span query. The span not query maps to Lucene SpanNotQuery.

关于regex - elasticsearch span_near查询错误命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46000178/

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