Amazon web services Cloudsearch模糊术语和短语

Amazon web services Cloudsearch模糊术语和短语,amazon-web-services,amazon-cloudsearch,Amazon Web Services,Amazon Cloudsearch,我试图弄清楚模糊搜索是如何在AWS CloudSearch上工作的 我想找到《星球大战》,但在我的搜索中,我拼出来了 ster wers 我的应用程序的逻辑将添加模糊,但它永远不会返回星球大战。 我试过: ster~1 wers~1 "ster wers"~2 "ster"~1 "wers"~1 我在这里遗漏了什么?您的查询不起作用的原因是因为CloudSearch是如何产生的。如果您的字段索引时分析方案设置为English,则wars将以其词干形式存储为war 这里有一个关于词干分析如何影

我试图弄清楚模糊搜索是如何在AWS CloudSearch上工作的

我想找到《星球大战》,但在我的搜索中,我拼出来了

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

ster~1 wers~1
"ster wers"~2
"ster"~1 "wers"~1

我在这里遗漏了什么?

您的查询不起作用的原因是因为CloudSearch是如何产生的。如果您的字段索引时分析方案设置为
English
,则
wars
将以其词干形式存储为
war

这里有一个关于词干分析如何影响查询的小演示

使用无词干查询('ster-wers')进行搜索:

使用不带词干的查询进行搜索需要将
wers
war
相匹配,这将被关闭2个字符,并且需要此查询:
q=ster~1+wers~2

使用带词干的查询('ster wer')进行搜索:

使用带词干的版本进行搜索意味着您正在将
wer
匹配到
war
,并且只差1个字符。因此,
ster~1 wer~1
将获得所需的结果(即它与《星球大战》匹配)

如何修复:

如果您将相关字段的分析方案配置为不使用任何词干分析,那么您描述的用例将起作用

  • 为此,请登录AWS Web控制台并转到分析方案-->添加分析方案:

  • 然后转到“索引选项”,并将字段配置为使用新的无词干分析方案:

  • 提交更改并重新编制索引

  • 这将解决您的问题,但当然您将失去阻止的好处。你不能既有蛋糕又吃