|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Добрый день, коллеги. Впервые пробую использовать полнотекстовый поиск. Создаю индекс для данной таблицы : Код: sql 1. 2. 3. 4. 5. 6. 7.
Триггерная функция : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Вроде бы поиск начинает работать, но работает странно - по каким-то запросам результаты находятся, по каким-то нет. Записи со всеми искомыми словами в таблице имеются. К примеру, этот запрос результат выдает : Код: sql 1.
А эти запросы - нет : Код: sql 1. 2.
В поле search_fts вот такая информация хранится : Код: sql 1. 2. 3. 4. 5.
Подскажите, в чем может быть причина такого поведения поиска? Что я делаю не так? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 00:30 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
Что выдают эти выражения? Почему-то у ваших токенов не отброшены окончания. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 08:24 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Запросы выдают следующее : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 09:36 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
big-trotПочему-то у ваших токенов не отброшены окончания. Да, странно. Все пересоздал повторно - результат не изменился и у большинства токенов окончания не отбрасываются. С чем это может быть связано? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 10:41 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
У вас конфигурация 'ru' чем отличается от стандартной конфигурации 'russian'? Еще при построении поля tsvector вы используете конфигурацию 'ru': Код: plsql 1. 2. 3.
А в запросе используете конфигурацию по умолчанию: Код: plsql 1.
Функция to_tsquery('двери') использует конфигурацию по умолчанию, которая задается GUC переменной default_text_search_config. Она возможно не 'ru'. Что выдает запрос? Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 11:47 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
RutraУ вас конфигурация 'ru' чем отличается от стандартной конфигурации 'russian'? Для конфигурации 'ru' добавлены внешние русский и английский словари. RutraФункция to_tsquery('двери') использует конфигурацию по умолчанию, которая задается GUC переменной default_text_search_config. Она возможно не 'ru'. Что выдает запрос? Код: plsql 1.
Запрос выдает : Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 12:10 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Попробуйте запросы: Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 12:49 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
RutraПопробуйте запросы: Код: plsql 1. 2.
Т.е. запросы: Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 12:50 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
RutraПопробуйте запросы: Код: plsql 1. 2.
Эти запросы ничего не выводят. Получается, новая созданная конфигурация 'ru' с загруженными словарями не работает (или работает некорректно)? Попробовал все сделать для конфигурации по умолчанию - в токенах стали отбрасываться окончания и вроде как поиск начал (нормально?) работать. Возникают вопросы : - внешние словари - насколько они необходимы? - причина плохой работы новой конфигурации - низкокачественные словари? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2017, 13:38 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
21 февраля в 19 pm ГАИШ МГУ будет проходить митап "Полнотекстовый поиск: рецепты от разработчиков.". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2017, 19:33 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
aviceЭти запросы ничего не выводят. Получается, новая созданная конфигурация 'ru' с загруженными словарями не работает (или работает некорректно)? Странно, должны работать. Что показывает запрос? Код: plsql 1.
tsvector и tsquery должны совпадать. aviceПопробовал все сделать для конфигурации по умолчанию - в токенах стали отбрасываться окончания и вроде как поиск начал (нормально?) работать. Возникают вопросы : - внешние словари - насколько они необходимы? - причина плохой работы новой конфигурации - низкокачественные словари? У вас внешние словари - это словари Ispell? Откуда вы их скачали? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2017, 11:16 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
avice, > внешние словари - насколько они необходимы? Необходимы. Без них нет смысла говорить о поиске по словоформам. Что выдаёт запрос? Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2017, 12:31 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Разумеется, интересуют результаты с вашей конфигурацией. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2017, 12:36 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
RutraСтранно, должны работать. Что показывает запрос? Код: plsql 1.
tsvector и tsquery должны совпадать. Совпадают : "'дверь':1";"'дверь'" RutraУ вас внешние словари - это словари Ispell? Откуда вы их скачали? Вроде как словари Ispell - устанавливали их так : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Скачивал словари отсюда и отсюда ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 12:55 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
coneavice, Что выдаёт запрос? Код: sql 1. 2. 3. 4. 5.
Запрос выдает : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 12:59 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
cone Что выдаёт запрос? Код: sql 1. 2. 3. 4. 5.
А запрос без конфигурации 'ru' выдает следующее : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 13:34 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Хм... :) Все должно работать тогда для такого запроса: Код: plsql 1.
Тогда у меня есть подозрения, что is_delete равен true для этих записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 13:57 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
RutraХм... :) Все должно работать тогда для такого запроса: Код: plsql 1.
Тогда у меня есть подозрения, что is_delete равен true для этих записей. Оба запроса возвращают пустой результат : Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 14:07 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Можете скинуть dump базы в pastebin? Если дамп не слишком большой. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 14:11 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Rutra , Нет, скинуть дамп не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 14:13 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
Странно. Поигрался с такой табличкой. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
Конфигурация russian_hunspell устанавливается расширением hunspell_ru_ru в версии постгреса от Postgres Professional Запросики Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
правильно отрабатывают, если конфигкрации tsvector-а и tsquery совпадают (russian_hunspell). И неправильно ищут если в tsquery использовать дефолтную russian. Во всяком случае с точностью до слова "дверьми" Похоже: либо каким-то образом закралось расхождение в конфигурациях, используемых для tsvector и tsquery либо есть ещё какие-то детали, не описанные автором (например: ничего не сказано про индекс по полю search_fts). Если дороетесь, отпишите о результатах. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 18:12 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
cone Конфигурация russian_hunspell устанавливается расширением hunspell_ru_ru в версии постгреса от Postgres Professional Я никаких расширений не устанавливал, предполагая, что должно все работать без этого. Я ошибался? coneлибо каким-то образом закралось расхождение в конфигурациях, используемых для tsvector и tsquery Если и закралось расхождение, то даже предположить не могу где и как... coneлибо есть ещё какие-то детали, не описанные автором (например: ничего не сказано про индекс по полю search_fts). Про индекс по полю сказано в первом посте. Код: sql 1.
Вы об этом спросили? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 19:49 |
|
Полнотекстовый поиск не выдает результаты по некторым запросам
|
|||
---|---|---|---|
#18+
С индексом, конфуз. Надо добавить к макету. aviceрасширений не устанавливал ... должно все работать без этого конфигурации 'ru' добавлены внешние русский и английский словари Через расширение я сделал ровно тоже: добавил русский словарь и прописал другую конфигурацию. Одновременно подсказал желающим воспроизвести мой макет где взять этот самый словарь и как прописать конфигурацию. Это сделано чтобы можно было воспроизвести проблему для её предметного обсуждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 10:07 |
|
|
start [/forum/topic.php?fid=53&msg=39404111&tid=1996705]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 182ms |
0 / 0 |