Морж неправильно индексирует слова
В моем проекте Django я использую моржа для кеширования названий мест. например: Новая Зеландия, Нью-Йорк, Ньюкасл и т. д. Итак, когда я ищу ключ "новый", я ожидаю, что он вернет все вышеуказанные местоположения, но он только дает мне Ньюкасл. Но я, когда я использую 'n' или 'ne' в качестве ключа, я получаю все это. Любая помощь приветствуется.
1 ответ
Наконец выяснили проблему, когда вы инициализируете объект моржа, есть опция для передачи файла stopwords_file . Если вы не передадите какой-либо файл по умолчанию, определенный в библиотеке с именем stopwords.txt, он будет принят. В этом файле stopwords.txt было много слов, перечисленных как "новый". Таким образом, всякий раз, когда слово из файла стоп-слов находится в слове для индексации, оно не будет индексировать это конкретное слово.
В моем случае "новый" присутствовал в stopwords.txt. Поэтому, когда он индексировал "Нью-Йорк", он не отображал слово "Нью-Йорк" на "новый", а отображал его на "Йорк". Вот почему я не мог искать с "новым".
Я решил это, инициализировав объект поиска в Walrus db пустым файлом stopwords_file .