0

我的 Cloudsearch 索引目前没有返回任何结果,one-two three但它确实(正确地)返回了一个结果(one two three并且在搜索two three等时也将正确地包含在结果中)

我的理解是,这是因为可搜索的短语被分解为它们的标记(单词),空格和标点符号充当分隔符。所以,onetwo成为单独的token,但one-two不是有效token,所以没有找到结果。来自Cloudsearch 文档

在标记化期间,字段中的文本流使用 Unicode 文本分割算法中定义的分词规则在可检测边界上分成单独的标记。

那个 Unicode 文件在这里

我希望能够搜索one-two three并找到相关结果,以及其他一些标点符号,例如/. 是否可以使用 Cloudsearch 进行配置?

4

1 回答 1

0

我刚刚意识到一个简单的解决方案可以正常工作,尽管它在技术上不能回答我的问题。在将查询字符串发送到云搜索之前,我只需要预处理我的查询字符串,方法是用单个空格 替换-or或任何我想要的字符。/

这样,one-two three实际上执行搜索one two three,返回正确的结果。

于 2015-02-10T22:42:11.013 回答