| 1 2 |
| Re[4]: олюцернивание | |
| От: | AndrewVK модератор | ||
| Дата: | 16.11.06 12:18 |
| Здравствуйте, akasoft, Вы писали: AVK>>Ага. И при порче или перестроении индекса терять все данные A>Ага, можно подумать, что в других случаях при порче есть выбор. Вероятности порчи даже убогого джета и индексного файла мягко говоря не одинаковая. ... << RSDN@Home 1.2.0 alpha rev. 642>> |
| Re[4]: олюцернивание | |
| От: | Igor Sukhov rsdn | ||
| Дата: | 16.11.06 14:44 |
| Здравствуйте, akasoft, Вы писали: A>В примере с поиском файлов дата вообще переводится в некое подобие unix timestamp, и уже по этому числу в строковом представлении фильтруется. М.б. имеет смысл поступить так же? Попробуй и сравни. Т.к. обращения к БД все равно не избежать, тот тут надо сравнить скорость поиска по индексу в БД (поле dte) со скоростью поиска по, как ты сказал, timestamp полю в индексе Lucene. Если Lucene будет фильтровать по timestamp-у путем тупого сравнения значений, так как не пожертвовав минутами и секундами, кучности значений, а значит и эффективного индекса не добиться — то это будет фигня, медленная фигня. Если это реализовано умнее, то: может получиться что Access например по датам ищет медленно и в этом случае имеет смысл заранее отфильтровать идентификаторы сообщений по временному интервалу, а для MSSQL дополнительное наложенное условие по индексированному полю — только ускорит поиск, во всяком случае у меня щас он просто летает — запрос по всем форумам с интервалом поиска в 2 года выполняется за 2-3 секунды. ... << RSDN@Home 1.2.0 alpha rev. 0>> * thriving in a production environment * |
| Re[5]: олюцернивание | |
| От: | akasoft | ||
| Дата: | 16.11.06 21:55 |
| Здравствуйте, Igor Sukhov, Вы писали: IS>Попробуй и сравни. Попробую. Я думал, ты уже попробовал и знаешь. Хотя, с другой стороны, уж лучше там оставить минимум данных, всё компактнее будет. Попробовал ейный оптимизатор (вызов Optimize() после построения части индекса), требует 2 раза по столько, сколько весит индекс. Пока не понял, оптимизирует, или в дуду играет. Формочку индексации я уже наваял. На своих > 1.7 млн. сообщений тоскливо ждать финала не видя конца туннеля и не имея возможности приостановить/продолжить. Долго индекс строится, сабака! Ищет, конечно, уматно. Особенно словоформы. Ну и заморочка с пробелами и &, типа "сеансы в php" не то же самое, что и "сеансы&в&php". А нету ли у тебя ссылки на язык люсеновских поисковых запросов? Я невод покидал-покидал, но пока кроме док на 9 метров, Seekafile Server, книги по люсене и исходников к ней так пока и не нашёл. Вдруг завтра скачаю, а окажется, что там всё на яве. Ты писал тут Автор: Igor Sukhov кучу отмазок в конце про удаление, переносы... В общем, всё это побороть можно. При получении пакета сообщений мы можем построить список mid, а затем по этому списку скомандовать люсене удалить документы из индекса, и затем сделать выборку этих mid и переиндексировать. Тысячу сообщений она будет жевать порядка 20 секунд. Приемлимо. Сотню жуёт пару секунд. Хотя, наверное, больше тратит времени на открытие/закрытие индекса.Дата: 15.11.06 ... << RSDN@Home 1.2.0 alpha rev. 666>> SQL Express 2005 |
| Re[6]: олюцернивание | |
| От: | Igor Sukhov rsdn | ||
| Дата: | 16.11.06 23:23 | ||
| Оценка: | 16 (1) | ||
| Здравствуйте, akasoft, Вы писали: A>Здравствуйте, Igor Sukhov, Вы писали: IS>>Попробуй и сравни. (1) A>Попробую. Я думал, ты уже попробовал и знаешь. Ну я уже писал — работает очень быстро даже на медленной машине. Проблему я решил — вместо минут запросы выполняются за пару секунд, я же суровый практик — сэкономленная секунда — не стоит лишнего часа разработки. Чего мне сейчас в поиске не хватает — так это то что нельзя с найденными сообщениями работать, как если бы я просматривал форум в штатном режиме — ни поменить для дальнейшего просмотра, ни поменить как прочинатное/непрочитанное, ни добавить в "Избранное". Вот это действительно серьезнейший косяк в дизайне. A>Хотя, с другой стороны, уж лучше там оставить минимум данных, всё компактнее будет. Попробовал ейный оптимизатор (вызов Optimize() после построения части индекса), требует 2 раза по столько, сколько весит индекс. Пока не понял, оптимизирует, или в дуду играет. И сколько по времени эта оптимизация выполняется — если быстро, то имеет смысл вызывать ее после индексирования новой порции. A>Формочку индексации я уже наваял. На своих > 1.7 млн. сообщений тоскливо ждать финала не видя конца туннеля и не имея возможности приостановить/продолжить. Отлично. Утилита командной строки идея неплохая — пускай с нее начнут те кто хочет Янус на linux переводить. A>Долго индекс строится, сабака! Индексация 2-х тыщ сообщений — это секунды. A>Ищет, конечно, уматно. Особенно словоформы. Ну и заморочка с пробелами и &, типа "сеансы в php" не то же самое, что и "сеансы&в&php". А нету ли у тебя ссылки на язык люсеновских поисковых запросов? Я невод покидал-покидал, но пока кроме док на 9 метров, Seekafile Server, книги по люсене и исходников к ней так пока и не нашёл. Вдруг завтра скачаю, а окажется, что там всё на яве. А зачем & ? AND — более привычная форма. Синтакис языка запросов тут — http://www.dotlucene.net/documentation/QuerySyntax.html, там и про что делать с & тоже написано. Кстати, посмотри примеры запросы для date range поиска — как раз для твоего тестирования (*1). A>Ты писал тут Автор: Igor Sukhov кучу отмазок в конце про удаление, переносы... В общем, всё это побороть можно. При получении пакета сообщений мы можем построить список mid, а затем по этому списку скомандовать люсене удалить документы из индекса, и затем сделать выборку этих mid и переиндексировать. Тысячу сообщений она будет жевать порядка 20 секунд. Приемлимо. Сотню жуёт пару секунд. Хотя, наверное, больше тратит времени на открытие/закрытие индекса.Дата: 15.11.06 Не нужно удалять сами документы, Document.RemoveFields и затем AddFields решают проблему и перенесенных и удаленных сообщений. ... << RSDN@Home 1.2.0 alpha rev. 0>> * thriving in a production environment * |
| Re[7]: олюцернивание | |
| От: | akasoft | ||
| Дата: | 18.11.06 14:12 |
| Здравствуйте, Igor Sukhov, Вы писали: IS>Не нужно удалять сами документы, Document.RemoveFields и затем AddFields решают проблему и перенесенных и удаленных сообщений. Похоже, это не так. Из метаданных:
... << RSDN@Home 1.2.0 alpha rev. 666>> SQL Express 2005 |
| Re[8]: олюцернивание | |
| От: | Igor Sukhov rsdn | ||
| Дата: | 18.11.06 19:58 |
| Здравствуйте, akasoft, Вы писали: A>Здравствуйте, Igor Sukhov, Вы писали: IS>>Не нужно удалять сами документы, Document.RemoveFields и затем AddFields решают проблему и перенесенных и удаленных сообщений. A>Похоже, это не так. Из метаданных: A>
Нда — точно Ксати, а что Optimize то делает — ты писал что он
в он в 2 раза увеличивает размер индекса ? На сайте есть только что:
сами же сегменты, а точнее их количество влияют как на скорость индексации так и на скорость поиска. Нормального же примера или рекомендаций, как изменять количество сегментов, при
2 Индексации небольшого количества документов 3 Активном поиске я найти у них не смог ... << RSDN@Home 1.2.0 alpha rev. 0>> * thriving in a production environment * |
| Re[9]: олюцернивание | |
| От: | akasoft | ||
| Дата: | 20.11.06 12:07 |
| Здравствуйте, Igor Sukhov, Вы писали: IS>Ксати, а что Optimize то делает — ты писал что он Оптимизирует индекс, удаляет удалённые документы (их можно восстановить при необходимости, как в dbf), сливает все сегменты в один, поэтому требует в 2 раза больше места. Полезно иногда делать, только не злоупотреблять. Сродни акцессовскому "сжать и восстановить". По индексу из одного сегмента и без хлама поиск быстрее и производительнее. IS>я найти у них не смог Я нашёл некоторые рекомендации на сайте zend, они люценовский движок используют. По умолчанию SetMaxBufferedDocs выставлен в 10, что приводит к частому сбросу мелких порций на диск, надо выставить больше, например 4096. Тогда индекс строится существенно быстрее, но и память требует порядка 100 — 200 МБ. Это всё актуально при обработке (индексировании) большого массива данных. Поиск и на 10 вполне шустр. Прикрутил я Люську к Янусу, вроде даже работает ... << RSDN@Home 1.2.0 alpha rev. 667>> SQLE 2005 |
| Re[10]: олюцернивание | |
| От: | ironwit | ||
| Дата: | 20.11.06 12:33 |
| Здравствуйте, akasoft, Вы писали: A>Прикрутил я Люську к Янусу, вроде даже работает ты же не забудь ее на access прикрутить ... << RSDN@Home 1.2.0 alpha rev. 667>> Я не умею быть злым, и не хочу быть добрым. |
| Re[10]: олюцернивание | |
| От: | Igor Sukhov rsdn | ||
| Дата: | 20.11.06 14:46 |
| Здравствуйте, akasoft, Вы писали: A>Я нашёл некоторые рекомендации на сайте zend, они люценовский движок используют. A>По умолчанию SetMaxBufferedDocs выставлен в 10, что приводит к частому сбросу мелких порций на диск, надо выставить больше, например 4096. Тогда индекс строится существенно быстрее, но и память требует порядка 100 — 200 МБ. Это всё актуально при обработке (индексировании) большого массива данных. Поиск и на 10 вполне шустр. Ну 200 мегабайт это не много — а "существенно быстрее" — во сколько раз быстрее ? A>Прикрутил я Люську к Янусу, вроде даже работает Давно пора ... << RSDN@Home 1.2.0 alpha rev. 0>> * thriving in a production environment * |
| Re[11]: олюцернивание | |
| От: | akasoft | ||
| Дата: | 20.11.06 16:42 | ||
| Оценка: | 45 (4) | ||
| Здравствуйте, Igor Sukhov, Вы писали: IS>Ну 200 мегабайт это не много — а "существенно быстрее" — во сколько раз быстрее ? (c) "Сколько вешать в граммах?". Тестов не делал, всё на глаз. На моих 1.7 млн. сообщений при 10 индекс строился порядка 6-7 часов, Я, конечно, понимаю, что SVN ведёт мониторинг файловой системы, но не до такой же степени. Оказалось, что Люськин индексатор клепает мелкие файлы со скоростью звука, тут же их затирает, объединяет... В общем, пипец как мне это не понравилось, и полез я искать чего по оптимизации. На моё удивление, нашёл на русском у zend про php Со второй попытки нашёл нужную комбинацию Сейчас выставил MaxBufferedDocs 4096, менее чем за 1.5 часа можно проиндексировать мои 1.7 млн. сообщений, пропуск проиндексированного массива в 800 тыс. занял порядка 10 мин. Итого: менее 1.5 часа параллельно работая против более 6 часов с полной вешалкой для 1.7 млн. , объём индекса — 388 МБ, ЛБД SQL 2005 Express — 3.4 ГБ, при индексации Janus.exe хапает местами до 450 МБ, потом отдаёт до 70-90 "обычных" МБ. ... << RSDN@Home 1.2.0 alpha rev. 667>> SQL Express 2005 |
| Re[11]: олюцернивание | |
| От: | akasoft | ||
| Дата: | 21.11.06 16:05 |
| Здравствуйте, ironwit, Вы писали: I>ты же не забудь ее на access прикрутить Это бесплатно прилагается к SQL Express. Сегодня испытал, на Акцессе тоже работает. Испытывал на моей конца прошлого года 2Г .mdb, более 1.2 млн. сообщений. За 10 мин. проиндексировала более 340 тыс. сообщений (27%). Быстро индексирует, быстрее SQLE, видимо, можно чего-то в SQLE подкрутить ещё. Поиск даже быстрее, бо акцесс у меня шустрее SQLE, выборки результата из ЛБД идут за секунду, в то время как SQLE требует нескольких секунд. Ну, конечно у меня акцессовская ЛДБ сжата и всё такое. ... << RSDN@Home 1.2.0 alpha rev. 667>> SQL Express 2005 |
| Re[12]: олюцернивание | |
| От: | ironwit | ||
| Дата: | 22.11.06 05:41 | ||
| Оценка: | +2 ![]() | ||
| Здравствуйте, akasoft, Вы писали: A>Здравствуйте, ironwit, Вы писали: I>>ты же не забудь ее на access прикрутить A>Это бесплатно прилагается к SQL Express. точно издеваешься. Бинарник в студию ... << RSDN@Home 1.2.0 alpha rev. 667>> Я не умею быть злым, и не хочу быть добрым. |
| Re[5]: олюцернивание | |
| От: | nitr0 | ||
| Дата: | 08.12.06 09:48 |
| Здравствуйте, Igor Sukhov, Вы писали: IS>Я бы мог поделиться своим exe-ник, но у меня в нем есть несколько хаккерских модификаций которые будут работать только на моем ноутбуке. А что за модификации, если не секрет ? Для производительности ? |
| Re[6]: олюцернивание | |
| От: | Igor Sukhov rsdn | ||
| Дата: | 09.12.06 09:15 | ||
| Оценка: | 2 (1) | ||
| Здравствуйте, nitr0, Вы писали: IS>>Я бы мог поделиться своим exe-ник, но у меня в нем есть несколько хаккерских модификаций которые будут работать только на моем ноутбуке. N>А что за модификации, если не секрет ? Вот доделаю — и покажу и расскажу. А пока — неготово. ... << RSDN@Home 1.2.0 alpha rev. 0>> * thriving in a production environment * |
| 1 2 |