Нет, это не так. Ваше предположение, что:
разве q = слово не должно искать слово везде, где оно появляется?
неправильно. Если вы используете word
в качестве единственного запроса и ничего более - вы ищете word
в поле поиска по умолчанию . Он не ищет все доступные поля во всех доступных документах.
Также помните, что анализатор запросов по умолчанию предполагает, что ваш запрос имеет синтаксис Lucene Query . Чтобы обрабатывать более «естественные» запросы, вы можете использовать синтаксический анализатор запросов edismax . Этот анализатор запросов поддерживает параметр qf
, который сообщает Solr, какие поля искать, вместо использования синтаксиса cat:electronics
. Ваш пример будет тогда q=electronics&qf=cat
.
В приведенных вами примерах документов, qf=series_t author name cat
, вероятно, является достойным значением для поиска во всех этих полях данного запроса. Вы также можете добавить ^<weight>
к имени поля, чтобы удары по различным полям имели различный вес. qf=name^10 cat
даст удар в name
десятикратном весе удара в поле cat
.