2016-10-07 4 views
1

Ich habe eine DB von Artikeln, und ich möchte nach allen Artikeln suchen, die: 1. das Wort "RIO" entweder im Titel oder im Auszug enthalten 2. enthalten das Wort " BRASILIEN‘in der parent_post_content 3. und in einem bestimmten ZeitbereichAmazon CloudSearch gibt falsche Ergebnisse zurück

die Abfrage, die ich mit Suche (strukturierten) war: (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')))

aber aus irgendeinem Grund, den ich Ergebnisse, die enthalten‚RIO‘im Titel, aber nicht enthalten 'BRASILIEN' im parent_post_content.

Dies ist besonders seltsam, weil ich nur auf den Titel zu konditionieren versucht (und nicht der Auszug) mit dieser Abfrage: (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'))

und die Ergebnisse scheinen OK.

Ich bin neu zu CloudSearch, also habe ich sehr wahrscheinlich Syntaxfehler, aber ich kann nicht scheinen, sie zu finden. Hilfe?

Antwort

0

Sie verwenden den Operator phrase, aber nicht wirklich nach einer Phrase suchen; Es wäre am besten, stattdessen den Operator term (oder keinen Operator) zu verwenden. Ich kann nicht verstehen, warum es wichtig sein sollte, aber etwas außerhalb dessen zu verwenden, was beabsichtigt war, kann unbeabsichtigte Konsequenzen nach sich ziehen.

Hier ist, wie ich würde Ihre Abfragen neu schreiben:

Mit Begriff (hauptsächlich verwendet, nur, wenn Sie Felder steigern wollen): (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')))

Ohne einen Operator (Ich finde das einfachste): (and parent_post_content:'BRAZIL' (range field=post_date ['2016-02-16T08:13:26Z','2016-09-16T08:13:26Z'}) (or title:'RIO' excerpt:'RIO'))

Wenn das fehlschlägt, können Sie die vollständige Abfrage buchen? Ich möchte überprüfen, ob Sie zum Beispiel den Parser für strukturierte Abfragen verwenden, da Sie erwähnt haben, dass Sie neu in CloudSearch sind.

Hier sind einige relevante Dokumente von Amazon:

+0

Anscheinend war das Problem nicht mit der Abfrage, sondern mit dem angezeigten Inhalt. Ich vertraute törichterweise darauf, dass der auf der CloudSearch-Site angezeigte Inhalt vollständig war, und kam daher zu dem Schluss, dass Brasilien nicht enthalten ist. Aber es ist leider nicht der volle Inhalt, und wenn ich den vollen Inhalt überprüfe, war Brasilien da. Vielen Dank für Ihre Hilfe! –

0

Offenbar war das Problem nicht mit der Abfrage, aber mit dem angezeigten Inhalt. Ich vertraute törichterweise darauf, dass der auf der CloudSearch-Site angezeigte Inhalt vollständig war, und kam daher zu dem Schluss, dass Brasilien nicht enthalten ist. Aber es ist leider nicht der volle Inhalt, und wenn ich den vollen Inhalt überprüfe, war Brasilien da.

Entschuldigung für den Scherz.

Verwandte Themen