Linkedin epey bir sure IndexTank'i opensource yapmisti [1]. IndexTank opensource olmadan once ElasticSearch ile hayranlikla cokca zaman gecirmisitim. Ve su kadarini soyleyebilirim ikisini de search servisi olarak kullanan bir son kullanici olarak IndexTank'da daha iyi olan bir ozellik goremedim.
Ikisi de Apache Lucene uzerine calisiyor. Ancak IndexTank oldukca eski bir surumunu kullaniyor. Gercekten eski bir surum. Ayar dosyasinda 3.0 yaziyor [2] ki su anki Lucene cekirdegi surumu 3.6 [3].
ElasticSearch guide sayfasi [4] alisilagelmis bir dokumantasyon sayfasi gibi olmasa da oldukca ise yarayan egelenceli bir sayfa. ElasticSearh aktif bir mailliste de sahip. IndexTank icin yeterli bir community ve dokumantasyona ulasamadim. Cunku http://indextank.com/ sayfasi aktif degil uzun suredir. Sadece bir linkedin grup sayfasi var ve oldukca yetersiz.
Hemen kurup deneyebilirsin : https://github.com/linkedin/indextank-engine
Kendi performans testlerinizi kendiniz yapabilirsiniz ama tek makine uzerinde kiyaslama yapmak dogru olmayabilir. Cunku IndexTank cloud tabanli bir yapida basarisini kanitlamis bir sistem olarak tanitiliyor.
maven ile derlemeniz gerek. Yani eger sahip degilseniz once maven kurmalisiniz.
Indirdikten sonra
mvn compile package assembly:single
calistirmaniz yeterli artik "target/" altinda olusan jar dosyasini calistirabilirsiniz su sekilde
java -cp target/indextank-engine-1.0.0-jar-with-dependencies.jar com.flaptor.indextank.api.Launcher
Java, python, ruby ve php icin onerilen Api client'lar sunlar
Java: https://github.com/flaptor/indextank-java
Python: https://github.com/flaptor/indextank-py
Ruby: https://github.com/flaptor/indextank-rb
PHP: https://github.com/flaptor/indextank-php
Veri alisverisi yine json formatinda. github sayfasinda birkac ornek bulabililirsiniz.
1. "IndexTank is now open source!" : http://engineering.linkedin.com/open-source/indextank-now-open-source
2. https://github.com/linkedin/indextank-engine/blob/master/pom.xml#L19
3. Apache Lucene Releases : http://lucene.apache.org/core/downloads.html
4. ElasticSearch Guide : http://www.elasticsearch.org/guide/
Showing posts with label search engine. Show all posts
Showing posts with label search engine. Show all posts
Sunday, May 6, 2012
Saturday, November 5, 2011
sphinx get's dirty
Sphinx özellike main+delta seklinde calismalarda bazen indexlemeyi durdurabiliyor. Sonra baktığınızda index data dosyalarınız yerine sonuna '.new ve '.tmp'' eklenmiş hallerini gorebilirsiniz.
Tekrar indekslediğinizde başarılı bitebilir ama buyuk ihtimal ./search e query atayamayacaksiniz atsanizda eski gelecek.
Burada konuyla ilgili bug girilmiş
http://sphinxsearch.com/bugs/view.php?id=302
Bu durumla sık karsılasir oldum, ve karsilastigim zaman once searchd'yi kapatiyorum.
./searchd --stop
/opt/sphinx/var/log/searchd.pid dosyasini siliyorum. Bu sizde baska bir yerde olabilir veya olmayabilir, zira searcd kapanınca bu da silinmeli.
Ardından '.new' ve '.tmp' dosyalarini silip searchd yi tekrar baslatiyorum. Hepsi bu ancak can sıkıcı.
Tekrar indekslediğinizde başarılı bitebilir ama buyuk ihtimal ./search e query atayamayacaksiniz atsanizda eski gelecek.
Burada konuyla ilgili bug girilmiş
http://sphinxsearch.com/bugs/view.php?id=302
Bu durumla sık karsılasir oldum, ve karsilastigim zaman once searchd'yi kapatiyorum.
./searchd --stop
/opt/sphinx/var/log/searchd.pid dosyasini siliyorum. Bu sizde baska bir yerde olabilir veya olmayabilir, zira searcd kapanınca bu da silinmeli.
Ardından '.new' ve '.tmp' dosyalarini silip searchd yi tekrar baslatiyorum. Hepsi bu ancak can sıkıcı.
Tuesday, August 16, 2011
ElasticSearch Geo Location Search
Daha önce ElasticSearch kullanmaya başladığımdan ve gelişmiş bir kaç özelliğinden bahsetmiştim.
ElasticSearch gelişmiş filtrelemesi ile son derece performanslı olarak polygonal geo search ve distance calculation yapabildim. Aşağıdaki örnekte ayrıca "distance" parametresi verilerek ilgili uzaklıktaki nokta kayıtları da getirilebiliyor. Test için oluşturduğum ElasticSearch indexinde 300.000 rasgele nokta vardı. Sorgu hızını raporlamadım ancak genellikle 0.01 - 0.03 sn civarında cevap aldım. ElasticSearch kurlu makineye ram'i az ayırdığımdan cevap süresi biraz uzamış oldu. Genel oalrak performansını sevdim ancak. Location bazlı aramalar için de ideal bir search engine.
Meseleyi irdeleyin
http://www.elasticsearch.org/guide/
http://www.elasticsearch.org/blog/2010/08/16/geo_location_and_search.html
ElasticSearch gelişmiş filtrelemesi ile son derece performanslı olarak polygonal geo search ve distance calculation yapabildim. Aşağıdaki örnekte ayrıca "distance" parametresi verilerek ilgili uzaklıktaki nokta kayıtları da getirilebiliyor. Test için oluşturduğum ElasticSearch indexinde 300.000 rasgele nokta vardı. Sorgu hızını raporlamadım ancak genellikle 0.01 - 0.03 sn civarında cevap aldım. ElasticSearch kurlu makineye ram'i az ayırdığımdan cevap süresi biraz uzamış oldu. Genel oalrak performansını sevdim ancak. Location bazlı aramalar için de ideal bir search engine.
{ "filtered" : { "query" : { "match_all" : {} }, "filter" : { "geo_polygon" : { "place.location" : { "points" : [ {"lat" : 40, "lon" : -70}, {"lat" : 30, "lon" : -80}, {"lat" : 20, "lon" : -90} ] } } } } }
Meseleyi irdeleyin
http://www.elasticsearch.org/guide/
http://www.elasticsearch.org/blog/2010/08/16/geo_location_and_search.html
Friday, August 12, 2011
ElasticSearch advanced search
ElasticSearch search engine olarak hala gözümde son derece esnek ve hızlı. Benzer içerikleri veya duplicate içerikleri bulmak için de gayet hızlı bir tool olarak kullanıyorum.
ElasticSearch ileri düzey filtreme teknikleri var bunlardan birisi de FLT (Fuzzy Like This Query) . İleri düzey çünkü zaten var olan More Like This filtresinin Levenstain ile geliştirilmiş hali gibi.
Text verileriniz içinde benzer olanları veya duplicate olanları bulmak için oldukça ideal.
Örnek bir sorgu
ElasticSearch ileri düzey filtreme teknikleri var bunlardan birisi de FLT (Fuzzy Like This Query) . İleri düzey çünkü zaten var olan More Like This filtresinin Levenstain ile geliştirilmiş hali gibi.
Text verileriniz içinde benzer olanları veya duplicate olanları bulmak için oldukça ideal.
Örnek bir sorgu
{
"fuzzy_like_this" : {
"fields" : ["blog.title", "blog.tags"],
"like_text" : "futbol ve sinema hakkında", "max_query_terms" : 20, "min_similarity" : 0.5
}
}
Meseleyi irdeleyin :
http://www.elasticsearch.org/guide/reference/query-dsl/flt-query.html
http://www.elasticsearch.org/guide/reference/query-dsl/mlt-query.html
http://www.elasticsearch.org/guide/reference/query-dsl/mlt-query.html
Subscribe to:
Posts (Atom)