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

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

ster wers

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

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

我在这里错过了什么?

#1楼 票数:12 已采纳

您的查询不起作用的原因是因为CloudSearch的起源。 如果您的字段被索引并且Analysis Scheme设置为English ,那么wars将以其词干形式存储为war

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

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

使用非wers查询进行搜索需要您将werswar匹配,其中2个字符关闭并且需要此查询: q=ster~1+wers~2

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

与茎版本搜索意味着你匹配werwar和你只掉1个字符。 因此, ster~1 wer~1将获得所需的结果(即它与star wars相匹配)。

怎么修:

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

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

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

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

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

  ask by dmo translate from so

未解决问题?本站智能推荐:

1回复

Cloudsearch2013API:术语权重导致查询不返回任何结果

我一直在尝试使用cloudsearch进行术语加权以改善搜索结果。 以前,如果我有这样的搜索查询: ...我将获得4650个结果。 通过将查询添加到查询中,我更新了查询以增加与特定字段的相关性: ...但是现在来自上面的相同查询未返回任何结果。 为什么术语权重会影响查询,使查询什
2回复

CloudSearch查询以查找列表中包含术语的记录

我需要一个AWS CloudSearch结构化查询,它将帮助我查找字段值在列表中的记录。 例如,我要查找在“ 3,62,919,552,910”中找到category_id字段值的所有记录。
2回复

在CloudSearch上使用适用于PHP的AWS开发工具包查找带前缀的短语

在我们的后台办公室,我们将Cloudsearch用作搜索部分,而不是某些Mysql请求。 问题是我很难在Cloudsearch上获得相同的结果,如果可能,我需要一些帮助... 例如,如果用户搜索“ Alexandre Call ”: 使用Mysql :名为“ Alexandre &b
1回复

整个字符串的CloudSearch模糊匹配不起作用

我已经设置了一个包含地址记录的Amazon CloudSearch域。 我想在地址字段上进行模糊文本搜索。 假设我有以下地址的记录: 如果我搜索'Amphitheatre Parkway, Muntain View'~5我没有结果。 我基本上删除了“山”中的“o”,但没有找到任何结果
2回复

结构化查询中短语和术语有什么区别?

Structured查询中的phrase和term有何不同? 我的CloudSearch域中有这些数据: "model"是类型text , "identifier"是类型literal , "created_at"是类型date 。 我们来一些问题: 有什么我可以用phrase做
1回复

Cloudsearch日期范围

我有以下格式的cloudsearch文档,并且正在使用简单的queryParser。 因此,当我搜索“ abc”时,由于两个文档的名字都为“ abc”,因此得到两个结果。 如何将其带入下一个级别并为查询添加日期范围? 像这样,我想在两个日期之间搜索“ abc”,其中开始> = dat
1回复

如何搜索Cloudsearch经常变化的价值?

我是Cloudsearch ,我的问题可能不清楚,因此我将尝试解释我的问题。 我们有一个后台,很多人都在进行研究,并且由于某些请求需要30多Cloudsearch才能执行,所以我们的数据库有时是KO,所以我们决定使用Cloudsearch因为我们已经在使用其他Amazon web servi
1回复

403在将数据发布到cloudsearch期间

以下是代码: 产生以下结果: 安全规则也向所有人开放。 可能是什么问题?