Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
Я понимаю, что тема о производительности count(*) не проходит... Но: я делаю поиск, у меня есть две кнопки - Next, Prev. Next открытf, если результатов поиска больше, чем на странице. Сам поиск делается очень неплохо, но сделать count(*) это будет писец.... Как сделать умнее? Чтобы было видно, сколько найдено, или .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 14:34 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
общее количество результатов произвольного поиска (ИМХО) - НИКАК. насчет "след.стр.". я делал так: select * ... LIMIT $per_page + 1 на страницу выводить $per_page результатов, а если скуль отдает $per_page+1, значить есть ышшо одна страница. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 14:52 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
туплю блин. еще про поиск. я делал индексированный поиск - словарь слов + линки к сообщениям. так вот к каждому слову было поле "количество" в базе и при индексации и удалении оно корректировалось. по одному слову можно было безболезненно построить пейджинг не вычисляя общего количества. так как поиск по & делался в памяти (выборка пересечения из таблицы связей), то с количеством по нескольким словам тоже особой проблемы не было, не считая расчета самого пересечения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 14:56 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
Я думаю, поможет что-то типа Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:17 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
_Андрей_МЯ думаю, поможет что-то типа Код: plaintext 1. 2. вы правы, но проблема в том, что это полнотекстовый поиск, не отдельно взятая таблица. Хотя, курсор должен сработать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:37 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
Можно делать приблизительный подсчет, например, так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Хотя пользователи временами ругаются, что не точно считает, но иного способа сделать этот подсчет _быстро_ я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 01:46 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
MBGМожно делать приблизительный подсчет, например, так: Код: plaintext тынц тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 10:52 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat MBGМожно делать приблизительный подсчет, например, так: Код: plaintext тынц тынц я помню свои вопросы, хоть и не все ;) можно, конечно, сделать в лоб, скажем: запрос на поиск limit размер страницы: вернуть страницу результата и тут же запрос на количество в отдельном thread, т.е. select count(*) from ( запрос на поиск тот самый) и когда завершится тогда использовать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 13:06 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
Winnipuhя помню свои вопросы, хоть и не все ;)ведь мы тут не вдвоем общаемся. :-) другие наверняка не в курсе. Winnipuhи тут же запрос на количество в отдельном thread, т.е. select count(*) from ( запрос на поиск тот самый) и когда завершится тогда использовать....чем вам способ volod.ru "LIMIT $per_page + 1" не подошел? он в самый раз для навигации "Next, Prev". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 13:33 |
|
||
|
как показать общее к-во результатов поиска?
|
|||
|---|---|---|---|
|
#18+
как вариант такая идея: смотри ф. stat() из pg_tgrm. там есть пример. получишь таблицу типа: word, ndoc, nentry. word должет содержать tsvector'ы, по которым делается tsearch поиск. сделай индекс, и ищи свои count'ы. или даже 'nentry' !!! конечно есть проблема с обновлением.. но это уже другой вопрос, можно в том же триггере на заполение поля tsvector в таблице поиска +/- делать. если слов (и tsvector'ov) несколько, то и ищем все и суммируем. я думаю, на огромной базе это будет быстрее count. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 20:49 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=282&tid=2004839]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 372ms |

| 0 / 0 |
