繁体   English   中英

如何在 AWS Cloudsearch 中执行包含符号的结构化查询

[英]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 符号 (@) 处拆分。 但是,后面没有空格的句点被视为令牌的一部分。

据我了解, texttext-array字段是根据分析方案进行标记的(在我的情况下是英文)。 文本被标记化, -符号是一个分词标记。

该字段不需要标记。 将索引类型更新为literal会阻止该字段上的所有标记化,这允许我的问题中的查询返回预期结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM