我有一个问题,我正在尝试为其创建查询。如果在文本文件中使用正则表达式,正则表达式将类似于
([A-Za-z]{3} [0-9]{5} [0-9]{3} [0-9]{2})
下面将是正则表达式的潜在命中,授予任何随机的字母数字和与该模式匹配的数字应该被视为命中。
TEX 11111 222 22
然而,当在弹性搜索中生成令牌时,它当然会创建4个令牌(下面的标准分析器输出)。由于有4个令牌,标准的elasticsearch regexp查询无法解决问题(正则表达式在生成的令牌上运行)。
问题是如何创建一个弹性搜索查询来捕获该系列标记中的命中(我已尝试使用span_multi进行一些span_near查询,但是即使斜率为0,它也会产生大量误报并且“in_order”设置为true)。
{
"analyzer" : "standard",
"text" : "TEX 11111 222 22"
}
'
{
"tokens" : [ {
"token" : "tex",
"start_offset" : 0,
"end_offset" : 3,
"type" : "<ALPHANUM>",
"position" : 0
}, {
"token" : "11111",
"start_offset" : 4,
"end_offset" : 9,
"type" : "<NUM>",
"position" : 1
}, {
"token" : "222",
"start_offset" : 10,
"end_offset" : 13,
"type" : "<NUM>",
"position" : 2
}, {
"token" : "22",
"start_offset" : 14,
"end_offset" : 16,
"type" : "<NUM>",
"position" : 3
} ]
}