Рекомендации по внедрению в Lucene поиск на сайте электронной коммерции asp.net

StackOverflow https://stackoverflow.com/questions/1209787

Вопрос

Мне было поручено запустить поисковый сервис на сайте электронной коммерции.В настоящее время он использует полнотекстовое индексирование на sql server, что не идеально, поскольку оно медленное и не настолько гибкое.

Как бы вы посоветовали мне подойти к замене этого на lucene?Под этим я подразумеваю, как бы я изначально загрузил все данные в индексы и как бы они поддерживались?в моих методах "вставить продукт", могу ли я также вставить его в индекс?

любая информация очень поможет!

Это было полезно?

Решение

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

http://lucene.apache.org/solr/

Кроме того, чтобы поддерживать синхронизацию продуктов между БД и Solr, вы можете либо создать свой собственный " sweeper " или реализовать DataImportHandler в Solr.

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

Мы создаем наш собственный механизм очистки, который через некоторое время читает представление БД и проверяет, есть ли новые продукты или какие-либо данные о продуктах были обновлены. Это метод грубой силы, и я бы хотел знать о DataImportHandler раньше.

Аспекты также являются действительно мощной частью Solr. Я настоятельно рекомендую использовать их.

Другие советы

Если вы решите использовать Lucene.NET для поиска, вам необходимо выполнить некоторые из следующих действий:

  • создайте свой первоначальный индекс, выполнив итерацию по всем вашим записям и введя в свой индекс данные, которые вы хотите выполнить поиск
  • если количество записей и данных, которые вы записываете в свои индексы, приводит к большим индексам, тогда подумайте о том, чтобы поместить их в несколько индексов (это означает, что вам придется создать более сложную программу поиска, поскольку вам нужно выполнить поиск по каждому индексу, а затем объединить результаты !!)
  • когда продукт обновляется или создается, вам необходимо обновить свой индекс (здесь есть процесс создания дополнительных частей индекса, а затем объединения индексов).
  • если у вас сайт с высокой посещаемостью и существует вероятность одновременного выполнения нескольких поисковых запросов, вам нужно создать оболочку, которая может выполнять поиск для вас по нескольким повторяющимся индексам (или наборам индексов) (подумайте о шаблоне singleton здесь), поскольку к индексу можно получить доступ (открыть) только для одного поиска за раз

Это отличная платформа.Сначала мы попытались использовать поиск по свободному тексту и обнаружили, что создавать индексы, обновлять их и управлять ими довольно сложно.Поиск был не намного быстрее, чем стандартный sql-поиск.Они действительно обеспечивали некоторую гибкость в поисковых запросах ... но даже это меркнет по сравнению с мощью Lucene!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top