Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
13.09.2016, 12:25
|
|||
---|---|---|---|
|
|||
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
Приветствую уважаемых экспертов! К моему глубокому сожалению, отдел мозга, отвечающий за составление SQL запросов у меня почему-то отключен, а жисть все равно принуждает к действию. Прошу помочь составить запрос для подсчета кол-ва вхождений слова из словаря во всех фразах и сумму метрик для фраз, где данное слово встречалось. Есть две таблицы, одна с фразами: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
другая со словами: Код: sql 1. 2. 3. 4. 5. 6. 7.
ума не приложу как получить на выходе вот такую таблицу: wordhitsumorange180red276black398green118blue00 где: word - все слова из vocabular.word hit - количество фраз из textdata.phrase в которых данное слово встречалось хотябы один раз sum - сумма значений из textdata.metric для фраз из textdata.phrase, в которых данное слово встречалось хотябы один раз Есть книжки М.Грабер SQL для простых смертных, Крис Фиайли SQL, но результата нет, а нужен то результат. Читал сайт sqlite.org в целом и www.sqlite.org/fts5.html в частности, от туда научился использовать расширение FTS5 для полнотекстового поиска, а так же составлять словари. Подскажите пож. как составить данный конкретный запрос и куда копать самостоятельно, что бы подружиться с SQLite для работы с текстовой статистикой? Поначалу думал решать такие задачи с RegExp, но оказалось без базы никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.09.2016, 14:14
|
|||
---|---|---|---|
|
|||
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
Вроде получилось, тока медленно-медленно пашет: Код: sql 1. 2. 3.
Чтобы использовать MATCH перенес исходные данные в FTS5 таблицу. Все работает как надо, не знаю только с точки зрения эстетики правильно или нет, ну и скорость слабовата. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.09.2016, 17:14
|
|||
---|---|---|---|
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
Notorand, Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.09.2016, 21:44
|
|||
---|---|---|---|
|
|||
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
pit_alex, спасибо, забыл что можно алиасы длинным именам давать. К сожалению LIKE, GLOB не годятся, много ложняков, например слово "опер" выкатывает и "опера" и "операция" и "кооператив". Пришлось использовать match, там всё чётко по словам бьется. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2016, 15:21
|
|||
---|---|---|---|
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
Notorand"опер" выкатывает и "опера" и "операция" и "кооператив" А так? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2016, 16:11
|
|||
---|---|---|---|
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
VSVLAD, а если слово в начале или конце строки? то непрокатит ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.09.2016, 07:39
|
|||
---|---|---|---|
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
VSVLAD, можно конечно так Код: sql 1. 2. 3.
но скорости не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.09.2016, 07:41
|
|||
---|---|---|---|
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
pit_alex, Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.09.2016, 15:48
|
|||
---|---|---|---|
|
|||
Есть две таблицы ... как подсчитать вхождения и сумму? |
|||
#18+
pit_alex, ну не зря же все эти расширения для фулл текст сёрча изобретают, там индекс 2/3 от размера базы занимает. Импортнул базу, в csv занимала 4.3 Гига, в sqlite стала 4.6. Создал FTS5 индекс и база сразу выросла до 12.3 Гигов! Оператор MATCH реально ускоряет создание выборки на таких объемах, в сравнении с LIKE. Пробовал регулярки в операторе REGEXP, так вообще тормозят страшно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=54&mobile=1&tid=2008572]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 302ms |
total: | 424ms |
0 / 0 |