Comments 28
Интересно, но хотелось бы подробностей о тестовом наборе данных (хотя бы какие тексты содержались, для оценки размера индексов и какой-никакой эффективности их использования).
Почему 'таблица', а не коллекция?
Почему 'таблица', а не коллекция?
Сравнивать полнотекст Sphinx'а с текстовым поиском MongoDB — очень странно. У монги очень примитивный поиск и вряд ли они особо сильно будут его развивать.
Интересно. Но в моей ситуации сравнение немного некорректное. Я сейчас пишу пост про прикручивание сфинкса к монге, у меня набор в 20 гб плайнтекста, 327 млн документов. Так вот, сам сфинкс работает да, очень быстро. Выплевывает результат мгновенно. Но получить записи, найденные сфинксом, по id'шникам из MongoDB занимает значительное время. Мне требуются ВСЕ совпадения, а их на один запрос может быть несколько сотен тысяч. Таким образом вам бы стоило сравнить время выборки данных в случае сфинкс+ монго и просто монго.
Хм. А можно узнать, что за кейс такой, когда нужны все совпадения? Обычно-то постраничка или ее аналог есть. Какое-то API?
а там случаем не несколько сотен тысяч запросов с отдельными выборками тормозят?
типично запрос select * from data where id in (1,2,3,...,100000) это куда быстрее, чем 100000 запросов select *… where id=$id; в случае монги синтаксис, понятно, другой, но беда-то та же самая
типично запрос select * from data where id in (1,2,3,...,100000) это куда быстрее, чем 100000 запросов select *… where id=$id; в случае монги синтаксис, понятно, другой, но беда-то та же самая
Есть еще проблема выбрать из монги документы в том порядке, в котором они пришли из сфинкса, соблюдая релевантность выдачи, потому что монга не умеет выбирать данные в требуемом порядке. Как вы с этим справлялись?
Простите, что не про mongo, но:
Сфинкс, который не блещет документацией...Отличная документация. Чего именно в ней не хватило?
… и клиентамиСо сфинксом уже давно можно работать любым mysql-клиентом (и это рекомендуемый способ).
postgres тоже уже давно есть.
впрочем через xml неменее удобно в индексы кидать.
впрочем через xml неменее удобно в индексы кидать.
Лично мне не хватило описания клиентов, его нет. А в целом документация хорошая.
Стесняюсь спросить, а это что? :)
sphinxsearch.com/docs/2.1.1/sphinxql-reference.html
sphinxsearch.com/docs/2.1.1/api-reference.html
Впрочем, если речь о написанных третьими лицами клиентах, то их описания в нашей документации, конечно, нету.
sphinxsearch.com/docs/2.1.1/sphinxql-reference.html
sphinxsearch.com/docs/2.1.1/api-reference.html
Впрочем, если речь о написанных третьими лицами клиентах, то их описания в нашей документации, конечно, нету.
я про python sphinxapi
Так во всех API совершенно одинаковые методы, специально так. Документация на них есть по второй ссылке выше (API reference).
Плюс конкретно для Питоновского есть пара тестовых программок, которые показывают ключевое: как поискать, как построить сниппет. Ну и, конечно, MySQLdb + SphinxQL тоже никто не отменял.
В общем, довольно удивительно читать про «нету описания клиентов», да.
Offtopic: примерно настолько, как удивительно читать (был недавно тред на форуме) «ничего не работает, мы потратили кучу сил, надоело и плюнули» — при этом, разумеется, полчаса времени на то, чтобы отправить нам внятный багрепорт с конкретным описанием, а что же именно и при каких конкретно условиях не работает, не нашлось ни до, ни после треда. ;) Чо, бывает…
Плюс конкретно для Питоновского есть пара тестовых программок, которые показывают ключевое: как поискать, как построить сниппет. Ну и, конечно, MySQLdb + SphinxQL тоже никто не отменял.
В общем, довольно удивительно читать про «нету описания клиентов», да.
Offtopic: примерно настолько, как удивительно читать (был недавно тред на форуме) «ничего не работает, мы потратили кучу сил, надоело и плюнули» — при этом, разумеется, полчаса времени на то, чтобы отправить нам внятный багрепорт с конкретным описанием, а что же именно и при каких конкретно условиях не работает, не нашлось ни до, ни после треда. ;) Чо, бывает…
Ммм. (а теперь про Монго, да!). Я правильно понимаю, что если я обновлю текстовое поле в MongoDB, это изменение сразу же отразится в полтотекстовом индексе, без дополнительного вызова процедуры индексации? Если так, то сравнивать-то надо, по справедливости, с RT-индексами Sphinx-а.
спасибо за сравнение!
Нам уже давно самим любопытно, но руки не доходили категорически, а тут такой подарок :)
Нам уже давно самим любопытно, но руки не доходили категорически, а тут такой подарок :)
1) не поверю, что fulltext монго быстрее сфинкса, по этому обязательно проверю…
2) по какому критерию/алгоритму формируется значение параметра «score»
2) по какому критерию/алгоритму формируется значение параметра «score»
Вы своим поиском портите кеш Монго, который бы использовался для оптимизации обычных запросов.
на мой взгляд, странно сравнивать функцию базы данных с узкоспециализированным инструментом. В таких случаях инструменты выигрывают почти всегда. Другой вопрос, зачем используется текстовый поиск? Для создания простых фильтров? Подойдет текстовый поиск монго. Полнофункциональный поиск по сайту? Специализированный инструмент будет лучше. Каждый инструмент решает свою задачу. Сомневаюсь, что текстовый поиск в монго создавался для организации полнофункционального поиска по сайту. Ну и опять же, функция в стадии бэты, кто знает, что будет дальше…
Sign up to leave a comment.
Полнотекстовый поиск в MongoDB