Поисковый запрос 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

Другие вопросы по тегам