首页 > 解决方案 > SOLR ComplexPhrase Range 查询问题

问题描述

我正在尝试查询字符串中的数字范围。例如,我的查询如下所示:

{!complexphrase inOrder=true}address:"MAIL BOX NUM [10800 TO 10900]"

虽然结果包括预期的所有内容,但它还包括 MAIL BOX NUM 1083、1084 等。

这些不在定义的范围内,但看起来它正在执行“喜欢”搜索,而不是在范围内寻找匹配项。有没有办法解决这个问题?

标签: solrlucene

解决方案


它在范围内进行匹配 - 请记住,这些不是作为数字处理,而是作为文本处理。如果对文本进行排序,则 1083 排序10800 之后,但10900 之前:

1080
10800
10801
...
1081
108100
...
1084
...
109000

如果您想做这样的事情,请使用正则表达式过滤器将数字提取到自己的字段(并将字段设置为整数),然后匹配该字段的范围。


推荐阅读