Cloudsearch 模糊术语和短语
Cloudsearch Fuzzy terms and phrases
我想了解模糊搜索在 AWS CloudSearch 上的工作原理
我想找到 "Star Wars" 但在我的搜索中,我拼写了它
ster wers
我的应用程序的逻辑会变得模糊,但绝不会 returns 星球大战。
我试过:
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
将得到想要的结果(即匹配 star wars
)。
如何修复:
如果您将相关字段的分析方案配置为不使用任何词干提取,则您描述的用例将起作用。
为此,请登录 AWS Web 控制台并转到分析方案 --> 添加分析方案:
然后转到“索引选项”并配置您的字段以使用新的无词干分析方案:
提交您的更改并重新编制索引。
这将解决您的问题,但您当然会失去词干提取的好处。你不能既要蛋糕又要吃。
我想了解模糊搜索在 AWS CloudSearch 上的工作原理
我想找到 "Star Wars" 但在我的搜索中,我拼写了它
ster wers
我的应用程序的逻辑会变得模糊,但绝不会 returns 星球大战。 我试过:
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
将得到想要的结果(即匹配 star wars
)。
如何修复:
如果您将相关字段的分析方案配置为不使用任何词干提取,则您描述的用例将起作用。
为此,请登录 AWS Web 控制台并转到分析方案 --> 添加分析方案:
然后转到“索引选项”并配置您的字段以使用新的无词干分析方案:
提交您的更改并重新编制索引。
这将解决您的问题,但您当然会失去词干提取的好处。你不能既要蛋糕又要吃。