Акцентированные или специальные символы в индексе RavenDB - PullRequest
0 голосов
/ 17 мая 2018

У меня есть несколько полей в моей коллекции, которые содержат акцентированные символы, и языки, из которых происходят слова, весьма различны: чешский, немецкий, испанский, финский, венгерский и т. Д. Я заметил это при поиске, например, "Андалусия"msgstr "(обратите внимание на акцентированный i), запрос появляется пустым - однако поиск" Andaluc * "возвращает то, что я ищу.Я нашел this в документации RavenDB и хотел спросить, решит ли мою проблему изменение метода индексации поля с default на точный .

Спасибо!

РЕДАКТИРОВАТЬ: RavenDB, кажется, сбрасывает буквы после И, включая акцентированный символ в поиске.В окне cmd я вижу запрос (который я ввожу из RavenDB Studio как NAME_1:Andalucía), выходящий как (...)/ByName?term=Andaluc&field=NAME_1&max(...)

Когда я перехожу к терминам индекса, я вижу "andalucía"(строчными!)Определение индекса это просто "select new { NAME_1 = area.NAME_1 }".Забыл упомянуть, что я все еще на RavenDB 3.5.

Определение индекса:

Map = areas => from area in areas
                               select new
                               {
                                   NAME_0 = area.NAME_0,
                                   NAME_1 = area.NAME_1
                               };
                Indexes.Add(x => x.NAME_1, FieldIndexing.Analyzed);
                //Analyzers.Add(x => x.NAME_1, typeof(StandardAnalyzer).FullName);

Закомментированная строка не работает, потому что тип StandardAnalyzer не разрешается в моем проекте VS2017,Я в настоящее время смотрю, как получить либо DLL или правильный , используя заявление.Запрос об Андалусии в кавычках приводит к отправке «правильного запроса» в Raven: (...)/ByName?term=Andalucía&field=NAME_1&max=5(...) - но не дает результатов.

ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Обнаружен dll Lucene, включен в проект, использован анализатор StandardAnalyzer и анализатор - тот же результат (результатов не найдено).

В RavenDB 4 это выглядит исправленным.Мех

Ответы [ 3 ]

0 голосов
/ 17 мая 2018

У вас не должно быть следующей строки кода в определении индекса для свойств, где вы выполняете операции поиска:

Indexes.Add(x => x.PropertyXYZ, FieldIndexing.No);

По умолчанию, если вы не изменили индексирование, ваш запрос работает.

0 голосов
/ 17 мая 2018

Вам необходимо указать поле, для которого вы хотите предложения.
Добавьте это в определение индекса: Suggestion(x => x.NAME_1);

0 голосов
/ 17 мая 2018

Вы должны убедиться, что опции ' Полнотекстовый поиск ' и ' Предложения ' включены в индекс.

...