Cloudsearch模糊术语和短语

dmo*_*dmo 12 amazon-web-services amazon-cloudsearch

我试图了解模糊搜索在AWS CloudSearch上的工作原理

我想找到"星球大战",但在我的搜索中,我拼写它

ster wers
Run Code Online (Sandbox Code Playgroud)

我的应用程序的逻辑将增加模糊,但它永远不会返回星球大战.我试过了:

ster~1 wers~1
"ster wers"~2
"ster"~1 "wers"~1
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

ale*_*sos 12

您的查询不起作用的原因是因为CloudSearch的起源.如果您的字段已被分析方案设置为索引English,那么wars将以其词干形式存储为war.

这是一个关于词干如何影响您的查询的小演示.

使用未阻止的查询('ster wers')进行搜索:

与联合国梗查询搜索需要您匹配werswar,这是关闭的2个字符,并要求此查询:q=ster~1+wers~2.

使用词干查询('ster wer')搜索:

使用词干版本进行搜索意味着您正在匹配wer,war并且您只能使用1个字符.因此ster~1 wer~1将获得所需的结果(即匹配star wars).

怎么修:

如果您为相关字段配置Analysis Scheme以不使用任何词干,则您描述的用例将起作用.

  1. 要执行此操作,请登录AWS Web Console并转至Analysis Schemes - > Add Analysis Scheme: 在此输入图像描述

  2. 然后转到索引选项并配置您的字段以使用新的非阻塞分析方案: 在此输入图像描述

  3. 提交您的更改并重新编制索引.

这将解决您的问题,但当然您将失去阻止的好处.你不能吃蛋糕也不能吃.