Вопросы о документах SOLR и некоторые другие - PullRequest
3 голосов
/ 19 января 2010

Веб-сайт: сайт объявлений (пользователи могут размещать объявления, искать объявления и т. Д.)

Я планирую использовать SOLR для поиска, а затем возвращать результаты только как идентификаторы nr: s, а затем использовать эти идентификаторы nr: s и запрос mysql, а затем, наконец, отображать результаты с этими идентификаторами: s.

В настоящее время у меня есть около 30 таблиц в MySQL, по одной для каждой категории.

1- Как вы думаете, я должен сделать это иначе, чем выше?

2- Должен ли я использовать только один документ SOLR или несколько документов? Кроме того, документ совпадает с индексом SOLR?

3. Было бы лучше использовать SOLR и пропустить MySQL, зная, что в каждой таблице много столбцов? Лично я гораздо лучше использую MySQL, чем SOLR.

4 - Скажите, что пользователь хочет искать автомобили в определенном регионе, как этот тип запросов выполняется / выполняется в SOLR? Пример: q=cars&region=washington возможно?

Вы можете подумать, что есть много информации о SOLR, но ее нет, особенно об использовании PHP с SOLR и PHP-клиентом SOLR ... Может быть, я напишу что-нибудь, когда узнаю все это. .. Или, может быть, кто-то из вас мог бы написать что-нибудь!

Еще раз спасибо за помощь ...

Ответы [ 4 ]

7 голосов
/ 20 января 2010

Во-первых, определения: документ Solr / Lucene примерно эквивалентен строке базы данных. Индекс примерно такой же, как таблица базы данных.

Рекомендую попытаться сохранить всю секретную информацию в Solr. Запросы к Solr, а затем к базе данных неэффективны и, скорее всего, не нужны.

Запросы в конкретном регионе будут выглядеть примерно так: q=cars+region:washington при условии, что у вас есть поле region в Solr.

Вики Solr содержат массу полезной информации и довольно хорошее базовое руководство . Конечно, это всегда можно улучшить, поэтому, если вы обнаружите что-то непонятное, сообщите об этом команде Solr.

Я не могу комментировать PHP-клиент, так как не использую PHP.

0 голосов
/ 04 мая 2016

Как предлагают другие, вы можете хранить и индексировать свои данные mysql и выполнять запрос в индексе solr, что делает ненужным использование mysql. Вам не нужно просто хранить и индексировать идентификаторы, а также запрашивать и получать идентификаторы, а затем запускать запрос mysql для получения дополнительных данных по этому идентификатору. Вы можете просто хранить другие данные, соответствующие идентификаторам, в самом solr.

Что касается PHP-клиента solr, то вам не нужно его использовать, и рекомендуется напрямую использовать REST, такой как Solr Web API. Вы можете использовать функцию PHP как file_get_contents("http://IP:port/solr/#/core/select?q=query&start=0&rows=100&wt=json") или использовать curl с PHP, если вам нужно. Оба способа практически одинаковы и эффективны. Это вернет данные в формате json как wt=json. Затем используйте функцию PHP json_decode($returned_data), чтобы получить эти данные в объекте.

Если вам нужно что-то спросить, просто ответьте.

0 голосов
/ 19 февраля 2010

2- Должен ли я использовать только один документ SOLR или несколько документов? Кроме того, это документ такой же как индекс SOLR?

3- Было бы лучше использовать только SOLR и пропустить MySQL, зная, что у меня много столбцы в каждой таблице? Лично я гораздо лучше использую MySQL, чем SOLR.

Документ является "экземпляром" индекса solr. Примите во внимание, что вы можете построить только один индекс Solr для каждого ядра Solr. Ядро действует как независимый сервер solr для того же solr insallation.

http://wiki.apache.org/solr/CoreAdmin

Yo может создать один индекс, объединяющий некоторое содержимое таблицы и некоторые другие индексы для выполнения поиска второго уровня ...

Не могли бы вы дать более подробную информацию о вашей архитектуре и данных?

0 голосов
/ 20 января 2010

Solr собирается вернуть свои результаты в синтаксисе, легко разбираемом с помощью SimpleXml. Вы также можете использовать клиентскую библиотеку SolPHP: http://wiki.apache.org/solr/SolPHP.

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

Если вы установили пример приложения Solr (поставляется с Jetty), то вы можете разрабатывать запросы Solr с помощью интерфейса администратора. URI результата в значительной степени соответствует тому, что вы будете создавать в PHP.

Самая сложная часть в начале работы с Solr - получить правильные файлы solrconfig.xml и schema.xml. Я предлагаю начать с очень простой конфигурации и перезапускать ваше веб-приложение каждый раз, когда вы добавляете поле. Начинать со всего schema.xml может быть непонятно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...