Я реализую полнотекстовый поиск на my rap website, и у меня возникают проблемы с именами рэпперов и песен.Полнотекстовый поиск нерегулярных имен рэппера с Solr
Например, кто-то может захотеть найти рэпера "Cam'ron", используя запрос "camron" (не учитывая апостроф среднего слова). Аналогичным образом, кто-то может найти песню «3 Peat», используя запрос «3peat».
«The Notorious B.I.G.» - это немного странный случай: «The Notorious BIG» и «The Notorious B.I.G.», оба работают (думаю, потому что solr.StandardFilterFactory удаляет точки из аббревиатур?), но «The Notorious B.I.G» (т. е. минус конечная точка) нет.
В идеале все разумные варианты этих имен должны работать. Я предполагаю, что ответ имеет какое-то отношение к solr.WordDelimiterFilterFactory, но я не уверен.
Кроме того, я использую Sunspot с Rails, если это необходимо.
Большой совет, спасибо. Я добавил следующее в 'schema.xml':' '. Кажется, это решает все, кроме случая «B.I.G». Есть идеи? –
Это может быть из-за StandardTokenizer. Вместо этого я заменил бы его на WhitespaceTokenizer.Чтобы проанализировать, как работают ваши анализаторы, вы можете использовать «Анализ» в своем solr, если у вас есть веб-интерфейс для этого. Там вы можете видеть, какой анализатор преобразует ваш текст и что является результатом его работы. – Yurish