![](/img/trans.png)
[英]How to condense not conditions in AWS CloudSearch structured query?
[英]How to execute a structured query containing symbols in AWS Cloudsearch
我正在尝试在 Cloudsearch 中执行结构化前缀查询。
这是查询参数的片段( csattribute
是文本类型)
{
"query": "(prefix field=csattribute '12-3')",
"queryParser": "structured",
"size": 5
}
我上面的查询将导致No matches for "(prefix field=csattribute '12-3')"
。
但是,如果我将查询更改为
{
"query": "(prefix field=csattribute '12')",
"queryParser": "structured",
"size": 5
}
然后我会得到一个我期望的结果列表。
我在简短的谷歌搜索中没有找到太多东西。 如何在查询中包含-
? 需要逃避吗? 还有其他需要转义的字符吗?
我通过这个 SO 问题指出了正确的方向: 如何搜索特殊符号 AWS 搜索
以下是https://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html的片段
Amazon CloudSearch 中的文本处理... 在标记化期间,使用 Unicode 文本分割算法中定义的断字规则将字段中文本的 stream 拆分为可检测边界上的单独标记。
根据分词规则,由空格分隔的字符串(例如空格和制表符)被视为单独的标记。 在许多情况下,标点符号被丢弃并被视为空格。 例如,字符串在连字符 (-) 和 at 符号 (@) 处拆分。 但是,后面没有空格的句点被视为令牌的一部分。
据我了解, text
和text-array
字段是根据分析方案进行标记的(在我的情况下是英文)。 文本被标记化, -
符号是一个分词标记。
该字段不需要标记。 将索引类型更新为literal
会阻止该字段上的所有标记化,这允许我的问题中的查询返回预期结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.