Как мне найти все поля в SOLR, содержащие ключевые слова? - PullRequest
11 голосов
/ 28 ноября 2011

Например, у меня есть ключевое слово для поиска: «Баскетбольный мяч». По какому запросу можно получить все поля, содержащие «Баскетбольный мяч»,? Я пытался использовать *: Basket Ball, но он не работает,

Ответы [ 3 ]

11 голосов
/ 28 ноября 2011

schema.xml определяет поле поиска по умолчанию -

<defaultSearchField>text</defaultSearchField>

Вы можете скопировать все поля в это поле поиска по умолчанию.

<copyField source="field1" dest="text"/>
<copyField source="field2" dest="text"/>
<copyField source="field3" dest="text"/>

И запрос q=basket ball должен работать.

4 голосов
/ 15 декабря 2015

Поле поиска по умолчанию (начиная с 3.6) теперь определено в solrconfig.xml

например. В файле solrconfig.xml, который поставляется с каталогом настроек Solr, вы увидите что-то вроде

  <initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell">
    <lst name="defaults">
      <str name="df">allText</str>
    </lst>
  </initParams>

Вы можете изменить allText на yourDefaultSearchFieldName

4 голосов
/ 28 ноября 2011

Вам необходимо использовать анализатор запросов, который может отправлять токены в несколько полей, например (e) dismax. Например, если у вас есть два поля field1 и field2: http://solr/select?q={!dismax}Basket Ball&qf=field1^1 field2^1

См. http://wiki.apache.org/solr/DisMaxQParserPlugin#qf_.28Query_Fields.29 для получения дополнительной информации о конфигурации dismax.

...