Поиск имен с помощью Apache Solr

Я только что вошел в, казалось бы, простой, но чрезвычайно сложный мир поиска. Для приложения я должен создать механизм поиска для поиска пользователей по их именам.

После прочтения множества сообщений и статей, в том числе:

Как я могу использовать Lucene для поиска по личному имени (имени, фамилии)?
http://dublincore.org/documents/1998/02/03/ имя-представление /
как лучше всего искать в социальной сети, отдавая приоритет отношениям пользователей в первую очередь?
http: //www.gossamer-threads. com / lists / lucene / java-user / 120417
Индекс Lucene и вопрос по дизайну запроса - поиск людей
Нечеткий поиск Lucene по именам клиентов и частичному адресу

... и некоторым другим, которые я не могу найти на- момент. И чтобы хотя бы индексирование и базовый поиск работали на моей машине, я разработал следующую схему поиска пользователей:

1) Имейте первое, второе и третье поля имени и проиндексируйте их с помощью Solr
2) Используйте edismax в качестве requestParser для поиска по нескольким столбцам
3) Используйте комбинацию фильтров нормализации, таких как: транслитерация, преобразование латиницы в ASCII и т. Д.
4) Наконец, используйте нечеткий поиск

. Очевидно, будучи новичком в этом, я не уверен, что это лучший способ сделать это, и хотел бы услышать мнение опытных пользователей, которые имеют лучшее представление в этой области, чем я.

Мне нужно иметь возможность сопоставлять имена следующими способами:

1) Сгибание акцента: Йорн соответствует Йорну и наоборот
2) Альтернативные варианты написания: Карл соответствует Карлу и наоборот
3) Сокращенные представления (я думаю, что делаю это с помощью SynonymFilterFactory): Sue соответствует Susanne и т. Д.
4) Соответствие Левенштейна: Джонн соответствует Джону и т. Д.
5) Соответствие Soundex: Элин и Эллен

Любые указания, критика или комментарии приветствуются. Пожалуйста, дайте мне знать, возможно ли это ... или, возможно, я просто мечтаю. :)


РЕДАКТИРОВАТЬ

Я также должен добавить, что у меня также есть поле полного имени на случай, если у некоторых людей длинные имена, например, из одного из сообщений: Джон Пол или Дель Кармен также должны соответствовать Джону Полу Дель Кармен

И так как это новый проект, я могу изменить схему и архитектуру любым удобным мне способом, поэтому существуют очень ограниченные ограничения.

15
задан Community 23 May 2017 в 12:25
поделиться