- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Допустим в поисковике нужно выводить по 10 результатов на странице.
Индекс хранить следующим образом:
При индексировании страницы давать вес слову (по какой либо формуле).
Для каждого слова создавать группу по 10 элементов в каждой, в каждой последующей группе веса слова меньше, и в самой группе слова сортированы по весу; каждая группа это уже сформированный постраничный результат поиска по данному слову.
Теперь если задан многословный запрос... word1 word2 wordN (на счет этого еще не особо думал), то получается нужно делать наложени групп каждого word(i)
1. Формула расчёта веса слова в документе оперирует переменными только одного документа ? Т.е. количество данного слова в других текстах и во всей коллекции не учитывается ?
2. При нахождении объединения массивов @1, @2 ... @N результирующий массив получается размерностью < 10. Что тогда ?
Допустим в поисковике нужно выводить по 10 результатов на странице.
Индекс хранить следующим образом:
При индексировании страницы давать вес слову (по какой либо формуле).
Для каждого слова создавать группу по 10 элементов в каждой, в каждой последующей группе веса слова меньше, и в самой группе слова сортированы по весу; каждая группа это уже сформированный постраничный результат поиска по данному слову.
Теперь если задан многословный запрос... word1 word2 wordN (на счет этого еще не особо думал), то получается нужно делать наложени групп каждого word(i)
Получается, что выдача зависит сама от себя. Какой в ней смысл?
4LF, Так ведь при ранжировании играет роль не только вес слова: словоформа, индекс цитируемости сайта, положение слова в документе (если пожелается), положение страницы на сайте (первая страница отличается от третьей степени вложенности)...
Кроме того, что будете делать при поиске словосочетаний?
1. Формула расчёта веса слова в документе оперирует переменными только одного документа ? Т.е. количество данного слова в других текстах и во всей коллекции не учитывается ?
да, согласен, TF*IDF здесь проблематично использовать... (придется перегруппировывать блоки)... Мучает просто то что при запросе придется лопатить весь индекс (если брать некоторую его часть, тогда есть ли смысл индексировать N документов, если при поисковом запросе использовать только его часть)... Думаю над "пред-ранжированием"...
2. При нахождении объединения массивов @1, @2 ... @N результирующий массив получается размерностью < 10. Что тогда ?
while ( resn < 10 ) { getNextGroup... }
Получается, что выдача зависит сама от себя. Какой в ней смысл?
почему? поясните, плиз...
4LF,
да, согласен, TF*IDF здесь проблематично использовать... (придется перегруппировывать блоки)...
Я правильно понял: при индексации каждому слову соответсвуют страницы, где встречается это слово и эти страницы упорядочены по весу слова на этой странице?
Если я понял правильно, то при такой структуре возникнет проблема при выборке страниц при запросе из нескольких слов. Надо будет найти пересечение по множествам (страниц), которые соответствуют разным словам, а это будет сделать проще, если страницы упорядочены по индексу.
Я правильно понял: при индексации каждому слову соответсвуют страницы, где встречается это слово и эти страницы упорядочены по весу слова на этой странице?
да примерно так...
при такой структуре возникнет проблема при выборке страниц при запросе из нескольких слов. Надо будет найти пересечение по множествам (страниц), которые соответствуют разным словам, а это будет сделать проще, если страницы упорядочены по индексу.
согласен это будет проще... но когда скажембудут испольщованы 2 часто употребляемых слова, после об'единения списков получится большой длины результат, который затем нужно отранжировать (что займет не мало времени)
Ну так объединение неупорядоченных списков наверняка больше времени займет, чем ранжирование. (если конечно вы свою модель не доработаете до возможности не вычислять полностью все множество документов).
На эту тему, есть статья "Execution Performance Issues in Full-Text Information Retrieval, Eric. W Brown." Так вот, согласно моему опыту реализации этой идеи, не слишком это здорово. Потому что, например, при конъюнктивных запросах из 2 и более слов первые позиции занимают отнюдь не те страницы, в которых, часто встречаются первое и второе слово запроса, а там, где эти слова располагаются близко.