Повышение Solr не работает должным образом, даже если я поставил высокий балл

У меня есть одно поле поиска, в котором пользователь может искать продукты по трем полям: productCFN (String type), productBrand (String type) и productUpnName (text type). Я даю значение повышения на основе приоритета, чтобы результат был в том же порядке (от самого высокого значения повышения к самому низкому значению повышения).

Но поведение поиска работает не так, как ожидалось (иногда). Я дал такое значение повышения

productCFN 100 [мы настроили значение повышения на основе значения, указанного для поля поиска]

продуктМарка 20

productUpnName 50

Поэтому, если я ищу, он должен сначала выполнить поиск по productCFN, затем productUpnName, затем productBrand, и в том же порядке результат будет показан во внешнем интерфейсе.

Я также проверил запрос, кажется, что он правильный, но не знаю, почему упорядочение не работает (я искал с «CC0»)

q=(productUpnName_text_en_us:(CC0~^25.0+OR+cc0~^25.0+OR+cc0^100.0+OR+CC0^100.0+OR+CC0*^50.0+OR+cc0*^50.0))+OR+(productCFN_string:(cc0^200.0+OR+CC0*^100.0+OR+CC0^200.0+OR+cc0*^100.0))+OR+(productBrand_string_mv:(CC0^40.0+OR+cc0*^20.0+OR+cc0^40.0+OR+CC0*^20.0))

Моя проблема заключается в том, почему продукты, чей productCFN начинается с "CC0", не занимают первое место, даже если я поставил наивысший балл productCFN.

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

Я использую StandardTokenizerFactory Tokenizer, который токенизирует пробелы, а также удаляет символы. Это действительно соответствует моим требованиям или лучше использовать KeywordTokenizerFactory ?

Я также искал DISMAX и EDISMAX. Действительно ли это влияет на результат, если использовать с близостью и значением повышения.

Возьмем еще один пример: у меня есть один продукт с productCFN X0406295L, и я начинаю поиск по X04, но вверху отображается неправильный продукт.

productCFN - 176-504 productUpnName - CASE 176-504 ATLANTIS SCREW TRAY FA

Я удивлен, почему он ищет вышеуказанный продукт, хотя у этого продукта нет бренда, а имя UPN также не содержит слова X04. Действительно ли это токенизация на основе числа, потому что там есть 04. Я полностью запутался с поиском solr.

Пожалуйста помогите.


person Free-Minded    schedule 25.05.2015    source источник


Ответы (1)


Ваша проблема заключается в использовании String vs Text. По умолчанию поле String не будет размечено.

Вы должны выполнять поиск по тексту, и вы должны использовать строку для граней и т. д.

person Community    schedule 27.05.2015
comment
Я знаю, как String и Text работают с Solr. Текст обычно использует тильду (~) в поисковом запросе, но здесь моя проблема заключается в повышении - person Free-Minded; 28.05.2015