Общие > Базы данных
INTERSECT SELECT ???
Phoinix:
Uzver
--- Цитировать ---
SELECT id_page FROM TermInDoc WHERE id_word=\'…\' OR id_word=\'…\' OR id_word=\'…\' ORDER BY id_page
--- Конец цитаты ---
SELECT id_page, SUM(amount) AS amount
FROM TermInDoc
WHERE id_word IN([перечисление]) GROUP BY id_page ORDER BY amount DESC, id_page
Примерно так, если я правильно понял
Uzver:
Забыл еще одну немаловажную деталь. Поскольку поиск работает в двух режимах «точный поиск» - поиск на точное соответствие заданных поисковых терминов и «приближенный поиск» - поиск по всем возможным «словоформам» от каждого из заданных терминов. В первом случае все как раз и ограничивается одним единственным запросом описанным ранее, а вот во втором случае количество запросов возрастает на количество всех возможных «словоформ» для каждого из заданных терминов с последующим сведением результатов. Вот именно в этом случае и кроется «бутылочное горлышко» алгоритма.
commander:
Uzver
Зачем делать по запросы для каждой словоформы...???
Uzver:
чтобы выбрать все возможные сочетания
commander:
не проще ли для каждого word_id определить список словоформ...?
Навигация
Перейти к полной версии