Comments 61
Или Sphinx или Solr
> Sphinx
Спасибо, не надо.
Спасибо, не надо.
+1
глядя на результаты поиска по Хабру — связываться со Sphinks нет никакого желания… хотя конечно виной тому могут быть кривые руки программистов ТМ
глядя на результаты поиска по Хабру — связываться со Sphinks нет никакого желания… хотя конечно виной тому могут быть кривые руки программистов ТМ
Очень зря, судите лучше по поиску ребят, перечисленных вот здесь:
http://sphinxsearch.com/info/powered/
http://sphinxsearch.com/info/powered/
Использую сфинкс уже года четыре. Во многих проектах. Принципиальных претензий нет. Скорость просто замечательная! Жаль, что в качестве ключа нельзя использовать текст.
«Что же это такое? По сути — это новый фронт-енд к широко известному индексу Lucene.»
Автор как бы намекает…
Автор как бы намекает…
тогда автор неправильно создал название топику, т.к. поисковым движком тут не пахнет, просто обертка над ним.
Lucene — это не поисковый движок, это библиотека для написания поисковых движков.
с этим я согласен, т.к.:
блин, парсер съел:
Lucene itself is just an indexing and search library and does not contain crawling and HTML parsing functionality.
Lucene itself is just an indexing and search library and does not contain crawling and HTML parsing functionality.
Да кравлинг и парсинг хтмл тут не при чëм. Люцен — это не демон, у него нет никакого внешнего интерфейса, и т.п. Он умеет строить индексы и по ним искать, и только этим и занимается. Кроме того, эластиксëрч, например, неплохо реализует реалтаймовый поиск, с чем солр не очень справляется — так что свойства поисковика определяются не только библиотекой.
Короче, нормальный заголовок, хотя статья фактически ни о чëм — намного интереснее почитать блог-посты на сайте эластиксëрча.
Короче, нормальный заголовок, хотя статья фактически ни о чëм — намного интереснее почитать блог-посты на сайте эластиксëрча.
я так понял, что ты используешь его?
Напиши статью, будет интересно сравнить, например, с тем же sphinx (понимаю, что полноценно не сравнить) из личного опыта (если конечно ты сфинкс использовал).
Напиши статью, будет интересно сравнить, например, с тем же sphinx (понимаю, что полноценно не сравнить) из личного опыта (если конечно ты сфинкс использовал).
Не, но игрался. Я сейчас использую сфинкс, а не его, только потому, что сфинкс мало памяти ест (эластиксëрч на старте от 100 мб, для маленького впс неприятно ;).
Но у эластика есть куча приятных фич, которых в сфинксе нет никак, можно вот посмотреть в их постах:
www.elasticsearch.org/blog/2011/05/13/data-visualization-with-elasticsearch-and-protovis.html
www.elasticsearch.org/blog/2011/02/08/percolator.html
www.elasticsearch.org/blog/2011/02/08/versioning.html
www.elasticsearch.org/blog/2010/08/16/geo_location_and_search.html
Но у эластика есть куча приятных фич, которых в сфинксе нет никак, можно вот посмотреть в их постах:
www.elasticsearch.org/blog/2011/05/13/data-visualization-with-elasticsearch-and-protovis.html
www.elasticsearch.org/blog/2011/02/08/percolator.html
www.elasticsearch.org/blog/2011/02/08/versioning.html
www.elasticsearch.org/blog/2010/08/16/geo_location_and_search.html
Я больше о несоответствии названия топика его содержимому, с Lucene никогда не работал, поэтому этот ньюанс от меня ускользнул :)
хотя даже в википедии написано, что:
ElasticSearch – A Distributed, Highly Available, RESTful Search Engine.
Кому интересно верить. :)
ElasticSearch – A Distributed, Highly Available, RESTful Search Engine.
Кому интересно верить. :)
Позволю себе не согласиться с этим (цитата с офф сайта: «Apache Lucene(TM) is a high-performance, full-featured text search engine library»). Lucene предоставляет сам по себе вполне удобный апи. На одном из проектов, на котором я работал, мы использовали чисто его (Lucene.NET, точнее), без Solr или ElasticSearch, и весьма успешно.
В конце концов, Solr или ElasticSearch--это всего лишь обертки (Facade, Wrapper, Adapter--как хотите) для Lucene, вызовы функций которых выполняются через Remote Procedure Call. Ничто вам не мещает написать свою обертку на любимом языке программирования и вызывать ее методы локально.
Но, на мой взгляд, необходимости в этом часто нет--опять же, интерфейс Lucene очень хорош сам по себе.
В конце концов, Solr или ElasticSearch--это всего лишь обертки (Facade, Wrapper, Adapter--как хотите) для Lucene, вызовы функций которых выполняются через Remote Procedure Call. Ничто вам не мещает написать свою обертку на любимом языке программирования и вызывать ее методы локально.
Но, на мой взгляд, необходимости в этом часто нет--опять же, интерфейс Lucene очень хорош сам по себе.
Виноват, пропустил эту строчку. С другой стороны, как пишут в комментарии ниже, действительно, название не совсем соответствует предмету обсуждения.
Lucene — это либа, на которой построены Solr и Elasticsearch.
Мне кажеться, сравнивать с Zend_Search_Lucene не совсем корректно — это все же не самостоятельный продукт, а просто РНР-порт (с учетом ограничений и особенностей) и работает как просто библиотека, а не самостоятельный сервис (хотя используя его можно написать аналог еластиксерча на РНР)
о каком вообще измерении скорости может идти речь, если вместо curl_init или на худой конец fsockopen вы делаете exec('curl -XPUT \'http://localhost:9200/habrahabr/users/'. $id. '\' -d \'… )? вы понимаете, время чего именно вы измеряете?
Как со стеммингом и морфологией? Русской, в частности?
Elasticsearch может использовать snowball, который поддерживает русский язык.
Спасибо. Надо попробовать.
По сравнению с английским, весьма криво поддерживает, надо сказать.
Приходилось иногда вручную подчищать резльутаты, т.к. некоторые суффиксы им игнорировались начисто.
Пример из кода:
Приходилось иногда вручную подчищать резльутаты, т.к. некоторые суффиксы им игнорировались начисто.
Пример из кода:
# if adjective
my $stemmer = Lingua::Stem::Snowball->new(lang => $self->{locale}{lang}, encoding => 'UTF-8');
$stemmed = $stemmer->stem($self->{query});
$stemmed =~ s{$_$}{} for qw(ец ск ий); # these are most common suffixes that are not processed by Porter's snowball
Multi-tenancy — это нисколько не «гибкость в настройках под индивидуального пользователя», если верить Гуглу, Вики и другим.
согласен, не самое точное определение. Но, по-моему, оно отображает суть термина
http://ru.wikipedia.org/wiki/Multitenancy
http://ru.wikipedia.org/wiki/Multitenancy
было
$generator->run(5000000);
получили
«count»: 5128888,
чему верить?
$generator->run(5000000);
получили
«count»: 5128888,
чему верить?
Все примеры — поиск по полям (имя, страна...), приведите пример полнотекстового поиска, речь же об этом.
Тоже видел ElasticSearch, тоже понравился. Предлагал на пару проектов, но пока все приросли к Solr. Ничего, думаю, наберет популярность, все, что есть в Solr, вроде бы есть и в нем, но конфигурируется более удобно/динамично, и есть то, чего в Solr нет или только будет, может в виде не слишком красивой прилуды.
А Sphinx чем не устраивает?
это разные вещи (кроме базы — поискового движка). у сфинкса при всех его достоинствах, нет REST и JSON интерфейса
А зачем он? У Sphinx есть клиент, который отдает id-шники найденных документов. Потом взял их в базе и все.
Тем, кто всерьез интересуется, но пока еще сомневается: у вас есть шанс пообщаться с одним из разработчиков ElasticSearch на конференции YAPC::Europe. Конференция пройдет в Риге, с 13 по 15 августа.
yapceurope.lv/ye2011/talk/3371
yapceurope.lv/ye2011/talk/3372
yapceurope.lv/ye2011/talk/3371
yapceurope.lv/ye2011/talk/3372
Кстати, еще один вариант применения: java.dzone.com/articles/jetslide-uses-elasticsearch
Если информация о том, что есть подобные движки пойдет в массы, то тогда можно ждать новых поисковиков тима ВЯндексе, ВГугле, ВРамблере и т.п.
>К сожалению, никакой информации на русском языке я найти не смог.
Напиши Андрею Змиевскому письмо, он ответит на все твои вопросы. Лмчно знаю его, очень дружелюбный…
Напиши Андрею Змиевскому письмо, он ответит на все твои вопросы. Лмчно знаю его, очень дружелюбный…
что было бы действительно интересно Хабросообществу — эта сравнение со Сфинксом,
что такого может эластик-сеач, чего не может сфинкс. Если сказать, что сфинкс не может JSONто это дело двух дней и небольшой демонёнок sphinx-proxy сможет понимать JSON
меня интересует функционал и скорость.
что такого может эластик-сеач, чего не может сфинкс. Если сказать, что сфинкс не может JSONто это дело двух дней и небольшой демонёнок sphinx-proxy сможет понимать JSON
меня интересует функционал и скорость.
Как минимум, невооружённым глазом видны «живые» апдейты и даже больше — “realtime get” ( github.com/elasticsearch/elasticsearch/issues/1060 )
это не показатель
меня функционал интересует, частично информацию подчерпнул из обсуждения, что нужно было упомянуть в статье обязательно: эластик-сёрч — это REST обертка основанная на поисковом движке Lucene.
По сравнению с Lucene, Sphinx дает +10 очков
меня функционал интересует, частично информацию подчерпнул из обсуждения, что нужно было упомянуть в статье обязательно: эластик-сёрч — это REST обертка основанная на поисковом движке Lucene.
По сравнению с Lucene, Sphinx дает +10 очков
примерчик бедненький, подскажите,
вот в сфинксе можно назначить вес полям записей при индексации,
ну например «Заголовок_резюме» более значим чем «Опыт_работы» (указываем коэф.),
а в Эластике (Люценте) можно так индексировать?
вот в сфинксе можно назначить вес полям записей при индексации,
ну например «Заголовок_резюме» более значим чем «Опыт_работы» (указываем коэф.),
а в Эластике (Люценте) можно так индексировать?
Сколько занимает на диске подобный индекс?
Мы кстати сделали hosted ElasticSearch со множеством плюшек вокруг: http://indexisto.com/ )
Есть готовая AJAX строка поиска которая поддерживает кучу всего из стандартного ответа кластика: фасеты, сортировки, хайлайт, саджесты
Есть готовая AJAX строка поиска которая поддерживает кучу всего из стандартного ответа кластика: фасеты, сортировки, хайлайт, саджесты
Sign up to leave a comment.
Быстрый полнотекстовый поиск ElasticSearch