Мне интересно индексировать полные имена артистов / групп с помощью Lucene / Solr с моего сервера MySQL.
У меня есть таблица DB под названием «entity_aliases», в которой хранится множество вариаций групп / исполнителей в моей системе.
таблица выглядит так:
entity_aliases int(11) auto inc. PK
entity_type enum(artist, band)
entity_id int(11)
entity_alias varchar(100) + full text search index.
Пример значения entity_alias (поля):
Beyoncé
Beyoncé Giselle Knowles
Giselle Knowles
...
Общее объяснение типа запросов, которые я хотел бы выполнить:
Мой сервис должен предоставлять информацию об артистах / группах.
Для этого мои клиенты должны предоставить мне имя организации.
* Мои клиенты (иногда) предоставляют мне имя сущности с опечатками или имя, которое точно не найдено в БД (в нашем случае «Бейонс Ноулз» также отмечает европейское «é»).
Итак, требования:
- Я использую осколенный MySQL - поэтому 'entity_aliases' также осколок. нужно индексировать более 1 сервера MySQL.
- Необходимо поддерживать имена 80M.
- Приятно иметь: игнорировать / преодолевать мелкие опечатки или европейские символы (нечеткий поиск).
- Требуется поддержка PHP (CakePHP).
- имена сущностей, вероятно, не будут превышать 20-25 символов
- Сам запрос очень прост - я предоставляю «имя», а взамен я хотел бы получить список похожих объектов (entity_id и entity_type) и, если возможно, - оценку.
- Мне нужно индексировать сущности на лету, и на индекс следует воздействовать немедленно.
Вещи, которые я хотел бы знать:
- выполнимо с помощью lucene / solr?
- есть ли лучшее решение, которое мне нужно рассмотреть?
- как должна выглядеть моя схема?
Спасибо!