2016-10-07 195 views
1

我有一个DB的文章,我想要搜索的所有文章谁: 1.在标题或摘录中包含单词'RIO' 2.包含单词'巴西在parent_post_content 3,并在一定的时间范围内Amazon CloudSearch返回虚假结果

我与搜索查询(结构化)为: (and (phrase field=parent_post_content 'BRAZIL') (range field=post_date ['2016-02-16T08:13:26Z','2016-09-16T08:13:26Z'}) (or (phrase field=title 'RIO') (phrase field=excerpt 'RIO')))

,但由于某种原因,我得到含有结果‘RIO’的称号,但不包含在parent_post_content中包含'BRAZIL'。

这是特别奇怪,因为我试图调节仅在标题(而不是节选)与此查询: (and (phrase field=parent_post_content 'BRAZIL') (range field=post_date ['2016-02-16T08:13:26Z','2016-09-16T08:13:26Z'}) (phrase field=name 'RIO'))

和结果似乎确定。

我是CloudSearch的新成员,所以我很可能有语法错误,但我似乎无法找到它们。帮帮我?

回答

0

您正在使用phrase运算符,但实际上并未搜索短语;最好使用term运算符(或不要运算符)代替。我不明白为什么它应该重要,但除了使用它以外的方式来使用它可能会导致意想不到的后果。

下面是我重新编写查询:(如果你想提高领域主要是刚用)

使用长期(and (term field=parent_post_content 'BRAZIL') (range field=post_date ['2016-02-16T08:13:26Z','2016-09-16T08:13:26Z'}) (or (term field=title 'RIO') (term field=excerpt 'RIO')))

,无需操作人员(我觉得这是最简单的): (and parent_post_content:'BRAZIL' (range field=post_date ['2016-02-16T08:13:26Z','2016-09-16T08:13:26Z'}) (or title:'RIO' excerpt:'RIO'))

如果失败了,您可以发布完整查询吗?例如,我想检查一下,您是否使用了结构化查询解析器,因为您提到您是CloudSearch的新成员。

这里有一些相关的文档从亚马逊:

+0

显然问题不在于查询,而在于显示的内容。我愚蠢地相信CloudSearch网站上显示的内容已完成,因此得出的结论是它不包含巴西。但是,唉,这不是完整的内容,当我检查完整内容时,巴西就在那里。 谢谢你的帮助! –

0

显然,这个问题是不是与查询细节,但显示的内容。我愚蠢地相信CloudSearch网站上显示的内容已完成,因此得出的结论是它不包含巴西。但是,唉,这不是完整的内容,当我检查完整内容时,巴西就在那里。

对不起。