Я реализую функциональность полнотекстового поиска на своем веб-сайте рэпа, и я сталкиваюсь с некоторыми проблемами с рэпером и названиями песни.
Например, кто-то мог бы хотеть искать рэпера "Cam'ron" использование запроса "camron" (игнорирование середины апострофа слова). Аналогично, кто-то мог бы искать песню "3 Торфа" использование запроса "3peat".
"Известный B.I.G." что-то вроде странного случая: "Известное БОЛЬШОЕ" и "Известный B.I.G." обе работы (я предполагаю потому что solr. StandardFilterFactory удаляет точки из акронимов?), но "Известный B.I.G" (т.е. минус запаздывающая точка) не делает.
Идеально все разумные изменения этих имен должны работать. Я предполагаю, что ответ имеет некоторое отношение к solr. WordDelimiterFilterFactory, но я не уверен.
Кроме того, я использую Солнечное пятно с направляющими, если это релевантно.
Да, вы правы. Вам необходимо правильно настроить WordDelimiterFilterFactory. Попробуйте включить все свойства и не забудьте включить свойство preserveOriginal, которое также сохранит ваши исходные условия.
generateWordparts - сделаем из B.I.G. термины - B I G
generateNumberParts - составят из 3Peat терминов - 3 Peat
catenateWords - сделают из B.I.G. термины - BIG
catenateNumbers - сделают из Rapper 802.11 термины - Rapper 80211
catenateAll - сделают из Rapper -802.11 термин - Rapper80211
splitOnCaseChange - сделает из GanGsTa терминов - Gan Gs Ta
preserveOriginal - сохранит также исходный термин . Из Rapper-802.11RuuLlZ сделает - Rapper-802.11RuuLlZ .