У меня есть одно поле поиска, в котором пользователь может искать продукты по трем полям: 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.
Пожалуйста помогите.