Как проиндексировать реляционную базу данных с помощью solr? - PullRequest
0 голосов
/ 09 октября 2011

Как я объяснил в своем посте за несколько дней до того, как я программирую многоязычный веб-сайт ASP MVC3, который должен содержать фасетный поиск, полнотекстовый поиск и дистанционный поиск. Чтобы понять, что я установил Solr 3.3 на Tomcat 7. Я также успешно интегрировал обработчик данных.

Теперь я хочу проиндексировать данные из моей реляционной базы данных MS SQL. Я прочитал, что структура индекса выглядит как одна таблица, содержащая все данные одного объекта. Это означает, что если у меня есть такой объект, как автомобиль, моя схема объединяет такие поля, как Брендинг, Цвет и так далее.

  1. А как насчет н-м реалий? Имеет ли индекс «таблица» один столбец для каждого отношения?
  2. А как насчет мультиязычных предметов? Должен ли я создать один объект / строку в индексе для каждого языка?
  3. И я должен сохранить только идентификатор объектов в индексе или полные имена?
  4. И, наконец, как индексировать (запрашивать) объект, как в образе базы данных? (Я читал кое-что о динамических полях и полях с несколькими значениями, но я не уверен, что это решение моей проблемы)

У меня есть пример проекта базы данных, о котором я говорю, прикреплен.

Спасибо за все ответы !!!

enter image description here

Обновление: Люди должны иметь возможность искать по-другому. У них должна быть возможность поиска в tbl_text_local.text с помощью полнотекстового поиска, а различные варианты являются аспектами. Результатом должен быть список объектов, которые соответствуют запросу, и список фасетов.

Но как мне индексировать Разное? Есть ли возможность индексировать их в такой форме:

<cattegory name = "cat1">

<Miscellaneous>
name...
</Miscellaneous>

<Miscellaneous>
...
</Miscellaneous>

<Miscellaneous>
...
</Miscellaneous>

</cattegory>


<cattegory name = "cat2">

<Miscellaneous>
</Miscellaneous>

<Miscellaneous>
</Miscellaneous>

<Miscellaneous>
</Miscellaneous>

</cattegory>

У людей должно быть поле поиска, например:

Ввод текста (для поиска текста)

фасетки:

Разное-Cattegory1

  • Разное1 (9)
  • Разное2 (39)
  • Разное3 (49)

Разное-Cattegory2

  • Разное5 (59)
  • Разное6 (69)

Разное-Cattegory3

  • Разное7 (7)
  • Разное8 (8)

Разное-Cattegory4

  • Разное9 (19)

1 Ответ

2 голосов
/ 09 октября 2011

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

  • Что пользователи ищут для ?Что такое «тип результата»?Схема должна быть разработана вокруг этого.
  • Какую информацию мне нужно получить?
  • Какую информацию мне нужно включить в полнотекстовый поиск?
  • Какую информацию нужноМне нужно использовать для сортировки результатов?
  • Какую информацию я буду искать по ?Т.е. какую информацию я буду использовать для фильтрации результатов поиска и как я буду использовать эту информацию?
  • Что я буду обрабатывать во время индекса и что я буду обрабатывать во время запроса?

Наконец, не бойтесь дублировать данные в индексе для определенных поисковых целей.

...