Может ли кто-нибудь объяснить мне о Q против FQ в Амазонке CloudSearch API версии 2013 года?

endpoint/search?q=shelim&fq=(or (not type:'XYZ') (not mod:'ABC'))&return=_all_fields

Мой результат возвращает данные для типа XYZ в то время как я упомянул, чтобы не возвращать значение для XYZ в запросе. Что-то не так? Также скажи мне, почему q а также fq для?

0

Решение

Как это объясняется в Cloudsearch Документация

Вы используете параметр fq для фильтрации документов, которые соответствуют запросу
критерии, указанные с параметром q, не влияя на
оценки релевантности документов, включенных в результаты поиска.
Указание фильтра просто контролирует, какие совпадающие документы
включены в результаты, это не влияет на то, как они оцениваются и
отсортирован.

q параметр, где вы вводите свой фактический запрос.

Что касается ваших критериев типа данных, вы в основном делаете

where type != 'XYZ' OR type != 'ABC'

Вам нужно использовать AND состояние ((and (not type:'XYZ') (not mod:'ABC'))) поэтому документы, которые не имеют типа XYZ и не имеют типа ABC отфильтрованы.

По вашему запросу документы, которые имеют тип ABC отфильтрованы но некоторые из этих документов имеют тип XYZ. Они включены, так как вы используете OR состояние.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]