Как найти несколько значений против нескольких полей в Solr?
Как искать несколько значений по нескольким полям в Solr?
Мой сценарий:
В настоящее время в schema.xml, я использую <solrQueryParser defaultOperator="AND"/>
а также
<copyField source="COL1" dest="defaultsearch"/>
<copyField source="COL2" dest="defaultsearch"/>
а также
<fieldType name="text_search" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
а также
<defaultSearchField>defaultsearch</defaultSearchField>
Пример:
Мой поисковый запрос похож на q = Good Boy.
Я должен получить записи, которые как Good, так и Boy должны представить в COL1 или COL2.
Но для меня это дает ожидаемый результат с дополнительными результатами, такими как Хороший подарок в COL1 и Мальчик, присутствующий в COL2 или Хороший подарок в COL2 и Мальчик, присутствующий в COL1.
Пожалуйста, предложите мне, как найти результаты с Good и Boy, которые должны быть представлены в COL1 или COL2.
1 ответ
Если вам требуется точное соответствие для COL1 и COL2, вы можете выполнить следующее (при условии, что COL1 и COL2 являются строками):
q=(COL1:"Good Boy" OR COL2:"Good Boy")
Если вам не требуется точное совпадение и фраза должна содержать слова "Хорошо" и "Мальчик" в любом порядке, попробуйте следующее (не проверено):
q=(COL1:*Good Boy* OR COL2: *Good Boy*)