Как грамотно построить индекс?

O
На сайте с 17.05.2009
Offline
42
1136

Впервые собираю поисковый движок, столкнулся с проблемой составления индекса. Предполагаемый размер индекса 200 Мб. Предполагается сделать поиск по сайту и проиндексировать 150 региональных сайтов. Теоретически индекс должен составлять 20% от индексируемых объектов, но у меня выходит 30-40%, что великовато. Библиотеку пишу на C#, open-source аналоги, как правило, зарубежного производства рассчитаны на языки германской или романской группы, не проходят тестирование русским языком.

Индекс собираю в трех таблицах файловой системы: 1. данные о документе, 2. основные ключевые слова по весу, 3. остальные ключевые слова документа тоже по весу (самая большая таблица в индексе). Сначала читается таблица 2 – результаты запроса сравниваются и если материала для анализа не хватает, читается таблица 3, после чего выводится результат.

Возможно мои представления о составлении индекса наивные, но материала по этому вопросу столь много, что мне не прочитать и не осмыслить за короткое время, которое у меня имеется для создания сборки.

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

Кто может объяснить на пальцах?

H
На сайте с 16.02.2007
Offline
63
#1

Ни фига себе вопросы от новичков :) Вы разделом не ошиблись :) ?

HraKK
На сайте с 02.03.2009
Offline
128
#2

Не пишите велосипеды, используйте sphinx.

С Вас 10$ за наводку.

я гарант (/ru/forum/493343) уже не оказываю данные услуги, извините.
Слава Шевцов
На сайте с 23.07.2005
Offline
370
#3

object, стемку используете, чтобы уменьшить число "уникальных" слов?

Неизменность точки зрения неизменно порождает иллюзию понимания.
O
На сайте с 17.05.2009
Offline
42
#4
HraKK:
Не пишите велосипеды, используйте sphinx.
С Вас 10$ за наводку.

Не подходит, у меня windows и опять же не доверяю зарубежным аналогам, только что отложил в сторону Lucene, а жаль - хороший движок, но проблема с русским.

Слава Шевцов:
object, стемку используете, чтобы уменьшить число "уникальных" слов?

Стемминг используется, но всего не может решить, нужен алгоритм отсева "ненужных" слов.

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#5
object:
Стемминг используется, но всего не может решить, нужен алгоритм отсева "ненужных" слов.

А Вас так сильно напрягает размер индекса?

O
На сайте с 17.05.2009
Offline
42
#6
Слава Шевцов:
А Вас так сильно напрягает размер индекса?

В общем-то, нет – есть небольшой резерв (100 Мб). Боюсь потерей в узком месте input/output, это же фс. Все-таки хочется ориентироваться на лучшие образцы, но это непросто.

HraKK
На сайте с 02.03.2009
Offline
128
#7
object:
не доверяю зарубежным аналогам

Так какого работаете на виндовсе? Это же зарубежный аналог.

На сфинксе в россии стоилько крупных проектов что вы себе и представить не можете.

И конечно ваш говнопоиск будет круче ссфинкса. Надоели, такие люди.

У каждого все круче, 3843242-ую цмс пишем, 3423423-поиск.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий