оцените идею индексации/хранения индекса для поиска/расчета релевантности

4F
На сайте с 25.04.2005
Offline
20
4LF
1395

Допустим в поисковике нужно выводить по 10 результатов на странице.

Индекс хранить следующим образом:

При индексировании страницы давать вес слову (по какой либо формуле).

Для каждого слова создавать группу по 10 элементов в каждой, в каждой последующей группе веса слова меньше, и в самой группе слова сортированы по весу; каждая группа это уже сформированный постраничный результат поиска по данному слову.

Теперь если задан многословный запрос... word1 word2 wordN (на счет этого еще не особо думал), то получается нужно делать наложени групп каждого word(i)

[Удален]
#1

1. Формула расчёта веса слова в документе оперирует переменными только одного документа ? Т.е. количество данного слова в других текстах и во всей коллекции не учитывается ?

2. При нахождении объединения массивов @1, @2 ... @N результирующий массив получается размерностью < 10. Что тогда ?

S
На сайте с 17.10.2005
Offline
17
#2
4LF:
Допустим в поисковике нужно выводить по 10 результатов на странице.
Индекс хранить следующим образом:
При индексировании страницы давать вес слову (по какой либо формуле).
Для каждого слова создавать группу по 10 элементов в каждой, в каждой последующей группе веса слова меньше, и в самой группе слова сортированы по весу; каждая группа это уже сформированный постраничный результат поиска по данному слову.
Теперь если задан многословный запрос... word1 word2 wordN (на счет этого еще не особо думал), то получается нужно делать наложени групп каждого word(i)

Получается, что выдача зависит сама от себя. Какой в ней смысл?

lagif
На сайте с 15.12.2004
Offline
30
#3

4LF, Так ведь при ранжировании играет роль не только вес слова: словоформа, индекс цитируемости сайта, положение слова в документе (если пожелается), положение страницы на сайте (первая страница отличается от третьей степени вложенности)...

Кроме того, что будете делать при поиске словосочетаний?

Это тоже пройдет...
4F
На сайте с 25.04.2005
Offline
20
4LF
#4
Maxim Golubev:
1. Формула расчёта веса слова в документе оперирует переменными только одного документа ? Т.е. количество данного слова в других текстах и во всей коллекции не учитывается ?

да, согласен, TF*IDF здесь проблематично использовать... (придется перегруппировывать блоки)... Мучает просто то что при запросе придется лопатить весь индекс (если брать некоторую его часть, тогда есть ли смысл индексировать N документов, если при поисковом запросе использовать только его часть)... Думаю над "пред-ранжированием"...

Maxim Golubev:
2. При нахождении объединения массивов @1, @2 ... @N результирующий массив получается размерностью < 10. Что тогда ?

while ( resn < 10 ) { getNextGroup... }

statev:
Получается, что выдача зависит сама от себя. Какой в ней смысл?

почему? поясните, плиз...

AA
На сайте с 16.04.2001
Offline
70
#5

4LF,

4LF:
да, согласен, TF*IDF здесь проблематично использовать... (придется перегруппировывать блоки)...
А зачем Вам весь индекс держать в таком виде? Нужны только первые страницы (т.е. 30-50 ссылок) на самые популярные слова. Правда, тогда получается обычный кэш запросов.
С уважением, Антонов Александр.
O
На сайте с 09.11.2005
Offline
30
#6

Я правильно понял: при индексации каждому слову соответсвуют страницы, где встречается это слово и эти страницы упорядочены по весу слова на этой странице?

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

4F
На сайте с 25.04.2005
Offline
20
4LF
#7
oleksandrenko:
Я правильно понял: при индексации каждому слову соответсвуют страницы, где встречается это слово и эти страницы упорядочены по весу слова на этой странице?

да примерно так...

oleksandrenko:
при такой структуре возникнет проблема при выборке страниц при запросе из нескольких слов. Надо будет найти пересечение по множествам (страниц), которые соответствуют разным словам, а это будет сделать проще, если страницы упорядочены по индексу.

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

[Удален]
#8

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

I
На сайте с 26.05.2001
Offline
64
#9

На эту тему, есть статья "Execution Performance Issues in Full-Text Information Retrieval, Eric. W Brown." Так вот, согласно моему опыту реализации этой идеи, не слишком это здорово. Потому что, например, при конъюнктивных запросах из 2 и более слов первые позиции занимают отнюдь не те страницы, в которых, часто встречаются первое и второе слово запроса, а там, где эти слова располагаются близко.

Приходите завтра, завтра будет! (http://itman666.livejournal.com)

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