Поисковый запрос Solr со специальным символом не работает в Sitecore
У меня есть контент на странице типа "финансовый рейтинг 3,75% и рыночный.....". Теперь, если я ввел ключевое слово для поиска как "3.75%", тогда результат должен отобразить эту страницу, но он не работает. Он возвращает 0 результата, но работает нормально, когда я ввожу "3.75" в качестве ключевого слова для поиска.
public SearchResults<SearchHelper> GetSearchData(string searchtext)
{
using (searchContext)
{
//Fetch all items which contains search query
var query = searchContext.GetQueryable<SearchHelper>().OrderByDescending(i => i.BoostingValue).Where(i => (i.PageSearchContent.Contains(searchtext) ));
var result = query.GetResults();
return result;
}
}
Кто-нибудь может помочь, как я могу разрешить поиск со специальным символом?
Спасибо
1 ответ
Вы можете использовать фильтр WordDelimiterFilterFactory для преобразования % в ЦИФРОВОЙ или АЛЬФА
Например:
# A customized type mapping for WordDelimiterFilterFactory
# the allowable types are: LOWER, UPPER, ALPHA, DIGIT, ALPHANUM, SUBWORD_DELIM
#
# the default for any character without a mapping is always computed from
# Unicode character properties
# Map the $, %, '.', and ',' characters to DIGIT
# This might be useful for financial data.
% => DIGIT
( => ALPHA
) => ALPHA
. => DIGIT
Пример использования
<filter class="solr.WordDelimiterFilterFactory" types="wdfftypes.txt" generateNumberParts="0" stemEnglishPossessive="0" splitOnCaseChange="1" preserveOriginal="1" catenateAll="1" catenateWords="1" catenateNumbers="1" generateWordParts="1" splitOnNumerics="1"/>
Просто создайте новый файл с именем "wdfftypes.txt" в solr/coreName/conf/wdfftypes.txt