|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
Доброго времени суток, коллеги. Есть таблица Код: sql 1. 2. 3. 4. 5. 6.
По колонке Content построен полнотекстовый индекс. Код: sql 1. 2.
В таблице около 500 тыс. записей. Такой запрос работает несколько секунд Код: sql 1. 2.
Но запрос работает медленно, только если ищем по значениям "0*", "1*", ..., "9*", "a*", ..., "f*" (т.е. цифры из шестнадцатеричной системы счисления). По "g*", "я*" и т.д. работает мгновенно. Может кто-то уже сталкивался с такой проблемой? Спасибо. Microsoft SQL Server 2017 (RTM-CU19) (KB4535007) - 14.0.3281.6 (X64) Jan 23 2020 21:00:04 Copyright (C) 2017 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 12:27 |
|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
andrew_tsw Доброго времени суток, коллеги. Но запрос работает медленно, только если ищем по значениям "0*", "1*", ..., "9*", "a*", ..., "f*" (т.е. цифры из шестнадцатеричной системы счисления). По "g*", "я*" и т.д. работает мгновенно. Может кто-то уже сталкивался с такой проблемой? Спасибо. 1. 16-я система тут ни причем, а находит правильно? 2. Все вот эти "1*", "п*" и .д. - это по в общем-то и не FTS, но это дело ваше 3. что охначает "медленно"? 500 000 - это не объем для FTI и FTS ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 16:43 |
|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
andrew_tsw Но запрос работает медленно, только если ищем по значениям "0*", "1*", ..., "9*", "a*", ..., "f*" (т.е. цифры из шестнадцатеричной системы счисления). По "g*", "я*" и т.д. работает мгновенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 20:20 |
|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
Ролг Хупин, По порядку: 1. Да, находит правильно. 2. "1*" - это самый простой вариант запроса на котором воспроизводится проблема. В реальности запрос идет по части номера документа, типа "ДОГТ-2*" 3. Медленно - значит запрос по "z*" работает 0,1 сек. А запрос по "1*" работает в 100-1000 раз дольше, более 10 сек. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2020, 11:05 |
|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
alexeyvg, Запрос Код: sql 1.
выдает keywordgroup_idphrase_idoccurrencespecial_termdisplay_termexpansion_typesource_term0x0031101Noise Word1010x006E006E0031101Noise Wordnn101 Для букв Код: sql 1.
keywordgroup_idphrase_idoccurrencespecial_termdisplay_termexpansion_typesource_term0x0062101Exact Matchb0b Вроде логично, тут проблем не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2020, 11:23 |
|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
andrew_tsw Вроде логично, тут проблем не вижу. Надо прямо как в поисковом запросе: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2020, 19:19 |
|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
alexeyvg, Да, действительно. Пробовал со звездочкой и без. В результате запросы и их результаты перемешались. Цифра + (star) Код: sql 1.
keywordgroup_idphrase_idoccurrencespecial_termdisplay_termexpansion_typesource_term0x0031101Exact Match1010x006E006E0031101Exact Matchnn101 Цифр Код: sql 1.
keywordgroup_idphrase_idoccurrencespecial_termdisplay_termexpansion_typesource_term0x0030101Noise Word0000x006E006E0030101Noise Wordnn000 Для букв: Буква+ (star) Код: sql 1.
keywordgroup_idphrase_idoccurrencespecial_termdisplay_termexpansion_typesource_term0x044F101Exact Matchя0я Буква Код: sql 1.
keywordgroup_idphrase_idoccurrencespecial_termdisplay_termexpansion_typesource_term0x0062101Noise Wordb0b Доп. подробности: Выснилось, что запрос начинает тормозить на базе после заполнения её тестовыми данными. Т.е. взяли базу в которой 150 тыс. документов. И скриптом добавили еще 300 тыс. документов, после чего перестроили индекс для FTS. Особенность тестовых данных - в качестве значений используются GUID. Т.е. 2/3 строк в таблице TextContent поле Content имеет вид: Код: sql 1.
Вот и символы из 16-рич СС. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:47 |
|
Полнотекстовый поиск (Full Text Search): медленный поиск по префиксу
|
|||
---|---|---|---|
#18+
andrew_tsw 16-рич СС. Уверен, это не то, о чем многие подумали ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:29 |
|
|
start [/forum/topic.php?fid=46&msg=39974096&tid=1685924]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 283ms |
total: | 421ms |
0 / 0 |