2016-10-07 74 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網站上顯示的內容已完成,因此得出的結論是它不包含巴西。但是,唉,這不是完整的內容,當我檢查完整內容時,巴西就在那裏。

對不起。