|
Наполнение колонки tsvector: ::to_tsvector vs to_tsvector
|
|||
---|---|---|---|
#18+
Всем привет, столкнулся с тем, что получилось записать в одну колонку данные двумя способами: 1) половина данных была заполнена как "names_vector = to_tsvector(data)" 2) другая половина через "names_vector = data::tsvector" В итоге имею в одной колонке данные двух "типов": 1) 'г':7 'зе':8 'иегов':5 'местн':1 'организац':3 'религиозн':2 'свидетел':4 и 2) 'в' 'г' 'зея' 'иеговы' 'местная' 'организация' 'религиозная' 'свидетелей' И тут я начинаю путаться. Тип колонки tsvector. ЭЭ, и я не понимаю, пострегсу не поплохеет, что половина записей не "нормализована" через to_tsvector? Что он сделает с остальной частью? Будет расставлять индекса в рантайме или как? Извините за тупые вопросы и спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2017, 19:40 |
|
Наполнение колонки tsvector: ::to_tsvector vs to_tsvector
|
|||
---|---|---|---|
#18+
Ему от этого не поплохеет. Но! Строки, заполненные вторым способом вы не будете находить. Т.к. to_tsvector() преобразует слова в базовую форму, а ::tsvector этого не сделает. И вы скорее всего запросы будете выполнять с помощью to_tsquery(), который также преобразует слова в базовую форму. Вам необходимо перезаписать строки, которые были заполнены вторым способом. У вас не было бы проблем со вторым способом, если бы слова ваших документов уже были бы и базовой форме. Примеры: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2017, 11:54 |
|
|
start [/forum/topic.php?fid=53&msg=39531071&tid=1996191]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 280ms |
total: | 389ms |
0 / 0 |