Какой метод мне следует использовать; Индексирование базы данных MySQL с помощью SOLR

0

У меня есть сайт для объявлений с примерно 30 категориями объявлений.

Я нахожусь на сцене, где мне нужно строить таблицы MySQL и индексировать их с помощью SOLR. Каждая строка в таблице имеет около 15 полей...

Я ищу производительность!

Интересно, какой из этих двух методов работает лучше всего:

1. Поместите одну таблицу MySQL для каждой категории, значение 30 таблиц, а затем добавьте несколько индексов в SOLR (это будет означать, что если пользователь хочет выполнить поиск только в одной конкретной категории, поиск таблицы/индекса, таким образом, набирает производительность (я думаю). Однако, если пользователь одновременно ищет ВСЕ категории, тогда нужно будет искать все таблицы/индексы.)

2. Имеют одну и только одну таблицу MySQL и только один индекс в SOLR.

Спасибо

Теги:
database
indexing

1 ответ

0
Лучший ответ

Предполагая, что все типы объявлений имеют одну и ту же структуру, я бы сделал следующее:

Сохраняйте текст в одной таблице вместе с другим полем для категории (и другими полями для любой другой информации, связанной с категорией).

В Solr создайте индекс, в котором есть текстовое поле, поле категории и поле PK. Поля текста и категории будут индексироваться, но не сохраняться, а поле PK (сохранение первичного ключа, соответствующего вашей таблице MySQL) будет храниться, но не индексироваться.

Разрешить пользователю выполнять два вида поиска: одно с текстом и одно с текстом и категорией. Для последней категория должна быть точным совпадением. Поиск Solr возвращает список PK, который позволит вам извлекать документы из MySQL.

Вы не увидите значительного улучшения производительности, разделив ваш индекс на 30 индексов, потому что Solr/Lucene уже очень эффективен при поиске данных через свои инвертированные индексы. Указание названия категории достаточно.

  • 0
    Данбен, я все еще застрял, к сожалению ... Я пытаюсь выяснить, как на самом деле я должен добавить CSV-файл в SOLR, и где я указываю, какие поля индексировать / хранить ... Должен ли я сделать это с помощью PHP (вы знаете, мой история сайта) или с терминалом. Ты знаешь это? Извините, если я прошу слишком много, но я совершенно новичок в этом! Спасибо
  • 0
    Вы читали ссылку на CSVHandler, которую я разместил на ваш предыдущий вопрос? Это объясняет, как добавить файл CSV в Solr. Вы должны сделать HTTP-вызов (например, с помощью curl). Существуют различные параметры запроса, которые поддерживает обработчик CSV, все они подробно описаны в документации.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню