Я использую solr для корпоративного приложения. Пока это работает хорошо, поскольку я использую поле ngram для поиска. Он корректно работает для частичных запросов (соответствует индексированным ngrams). Но проблема у меня есть, как обеспечить соответствие точных запросов ?. Например, запрос «Тест 1» должен совпадать точно так же, как и когда пользователь вводит его с двойными кавычками. В настоящее время, поскольку я использовал некоторые токенизаторы и фильтры, двойные кавычки отфильтровываются, нет разницы в запросах "test 1", "tEst 1" or "TEST 1"
(то есть из-за используемой мной цепи анализатора, но это необходимо для работы с ngrams и частичным поиском).Solr Search Field Best Practices
В настоящее время я ищу против поля запроса ngram. Что нужно сделать для точного соответствия запросов, что мне делать? Какова наилучшая практика ?. в настоящее время я считаю, что нужно идентифицировать двойные кавычки с клиентской стороны и изменить поле запроса в исходное поле (с помощью ngrams). Но я чувствую, что должен быть лучший способ сделать это, так как проблема, которую я имею, является общей, а solr
- полная поисковая система уровня предприятия.
Итак, вы имеете в виду, я должен оформить двойные цитаты со стороны клиента и изменить поле запроса в соответствии с этим ?. Я подумал об этом, но разве это не общая проблема, которую solr, возможно, уже решила? Я думал, что могу изобрести колесо – wattale
@wattale: пожалуйста, проверьте ответ. Я добавил еще один вариант ... –
Но вопрос в том, как я могу справиться, когда пользователь намеренно вводит запрос с двойными котировками ?. В вашем подходе нам нужно будет использовать механизм для нормализации индекса и запроса обоих, тогда нет смысла двойных котировок. Он также должен соответствовать полям, чувствительным к регистру. Я нашел поле pf в партитуре edismax. Я смотрю на него :) – wattale