SolrNet Newbie - Как работать с несколькими пунктами Where - PullRequest
1 голос
/ 14 июня 2011

Я только начал изучать SolrNet.Ранее я использовал MSSQL FULL TEXT.

На сервере sql мой запрос выполняет полнотекстовый поиск, а также содержит несколько объединений и предложений Where.Я также использую пользовательский пейджинг, чтобы вернуть только 10 строк из миллионов.

Я прочитал несколько документов solrNet и запустил примеры приложений, представленных в блогах.Пока все работало хорошо.Просто нужно понять, что мне делать с предложениями JOINS и WHERE ??

Например, если пользователь ищет Samsung, БД вернет 100 тыс. Записей, но если пользователь ищет Samsung && City = 'New york'&& Price> '500', тогда он получит только пару тысяч записей.

  • Добавлять ли я все столбцы в Solr и писать предложения WHERE в Solr?
  • Что мне делать сSQL ПРИСОЕДИНЯЕТСЯ?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Эквивалент Solr ваших предложений where состоит в сопоставлении столбцов с полями и выполнении запросов на основе синтаксиса запроса.Запрос, подобный вашему примеру:

 Samsung && City='New york' && Price >'500' 

может быть переведен в Solr примерно так:

 q=Samsung AND city:"new york" AND price:[500 TO *]

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

1 голос
/ 14 июня 2011

В Solr нет объединений.Из Solr wiki :

Solr предоставляет одну таблицу.Хранение набора таблиц базы данных в индексе обычно требует денормализации некоторых таблиц.Попытки избежать денормализации обычно терпят неудачу.

О предложениях WHERE (т.е. фильтрации), см. Запросы в SolrNet , Синтаксис запроса Solr и CommonПараметры запроса Solr .

...