Количество результатов, не соответствующих логическому запросу Solr

У меня есть экземпляр Solr, работающий с примерно 200 записями в его базе данных. Я хочу искать строки С или, но не удается получить рабочий запрос.

При выполнении простого запроса типа этого:q=fieldname:"string", я получаю 13 результатов. При выполнении другого запроса, как этот:q=fieldname:"otherstring", i gt 18 результаты. В конце концов, я ожидал бы, что это будет 27 результатов, потому что вместе есть 31 результат и 4 из них такие же, как они содержат обе строки.

Проблема теперь приходит, если я хочу искать обе эти строки сразу он будет возвращать все виды результатов, но не ожидаемый 27. Я нашел этот сайт, описывающий, как он должен работать, и попробовал несколько разных вещей:

  • q=fieldname:"string otherstring" дает мне 10
  • q=fieldname:"otherstring string" дает мне 0
  • q=fieldname:"string otherstring"~1 дает мне 10
  • q=fieldname:"otherstring string"~1 дает мне 1
  • q=fieldname:"(string otherstring)" дает мне 37, но некоторые не связаны вообще
  • q=(+fieldname:"string" +fieldname:"otherstring")" то же, что и выше

Я мог бы продолжать с этим, как я пытался больше, если эти комбинации. Может ли кто-нибудь помочь мне получить запрос с правильным количеством результатов или может ли кто-нибудь объяснить мне, что я делаю неправильно?

1 ответ

  1. Если вы хотите выполнить запрос OR, используйте или явно:

    q=fieldname:"string" OR fieldname:"otherstring"
    

    Другие версии будут давать различные результаты в зависимости от значения q.opи используемого анализатора запросов.

    q=fieldname:("string" OR "otherstring")
    

    должен быть семантически идентичен.