【发布时间】:2017-05-05 18:07:18
【问题描述】:
我需要对 CloudSearch 上的数字执行通配符查询。对文本数据执行此操作很容易 -> xy* 但在对数字字段运行相同查询时会出错。我使用 lucene 作为查询解析器。请建议是否可以使用任何其他解析器。
【问题讨论】:
标签: amazon-web-services lucene amazon-cloudsearch
我需要对 CloudSearch 上的数字执行通配符查询。对文本数据执行此操作很容易 -> xy* 但在对数字字段运行相同查询时会出错。我使用 lucene 作为查询解析器。请建议是否可以使用任何其他解析器。
【问题讨论】:
标签: amazon-web-services lucene amazon-cloudsearch
如果是结构化查询,您可以将过滤查询用作(and (prefix field=field_name 'xy'))。
但如果是简单查询,则可以直接在搜索中使用 xy*。
【讨论】:
数字字段不支持通配符搜索。从您的问题来看,您还不清楚您期望什么样的结果。
如果您希望匹配一个数字范围,那么您可以使用 范围查询:
numericField:[330 TO 339]
将匹配 numericField 大于或等于 330 且小于或等于 339 的文档。
另一方面,如果您希望找到第一位和第二位数字为三的所有文档,例如,您将需要另一个包含数字字符串表示的文本字段。你会像这样搜索它:
numericFieldAsText:33*
这将匹配33、331、333、330001 等。
【讨论】: