Search API
Önce ekşideki bilgi hapları alalım:en önemli özelliği distributed ve real-time olması.
solr gibi core olarak lucene kullaniyor (yani datastore aslinda lucene dokumanlari). kabuk demek daha dogru olur kanimca, daha cok orchestrator gibi
aslında bir nosql databasedir. datayı relational olmayan bir şekilde store ettiği için bayılmadan full text search yapabiliyorsunuz
kendi query-dsl'ini de üzerine barındırması fevkalade bir durum
query dsl'i biraz karışık ve aslında birbirinin yaptığı işleri aynen yapan farklı fonksiyonlar varPeki QUERY DSL ile sorgulama konusunda bool query'ye temel bakış atalım:
{
"query": {
"bool": {
"must": [
{
"term": {
"FIELD": {
"value": "VALUE"
}
}
},
{
"query_string": {
"default_field": "FIELD",
"query": "this AND that OR thus"
}
}
],
"should": [
{
"match": {
"FIELD": "TEXT"
}
}
],
"minimum_number_should_match": 1,
"must_not": [
{
"range": {
"FIELD": {
"from": "10",
"to": "20"
}
}
}
],
"boost": "4"
}
}
}localhost:9200/index/type URL yapısında sorgulama yapmak için _search api ile sorgulamak istenildiğinde localhost:9200/index/type/_search şeklinde sorgu yazılabilir. Search API aynı zamanda Faceting ve Filtering sağlayacaktır.Aşağıdaki sorgu sadece size ve query parametrelerinin atandığı facet ve filter'ın ise olmadığı temel bir sorgudur:
{
"size": 3,
"query": {
"match": {
"hobbies": "skateboard"
}
}
}Bu sorgu sadece hobiler içinde skateboard terimini aradığımız bir sorgudur ve hem GET hem POST metotlarıyla sadece urlnin sonunda _search olacak şekilde çalıştırılabilir.Temel sorgulama tipleri:
- Term
- Match
- Range
- Filters
Ref: http://exploringelasticsearch.com/searching_data.html
http://www.slideshare.net/clintongormley/elasticsearch-query-dsl-not-just-for-wizards
Mapping durumunu görüntüleme
Sadece bir indexin mappingi için
GET http://10.214.66.90:9200/_mapping/ihaleBirden fazla indexin mappingi için
GET http://10.214.66.90:9200/_mapping/ihale,FirmaBir filed(alanın) mappingi için
GET http://10.214.66.90:9200/_mapping/ihale/field/Konusu
Hiç yorum yok:
Yorum Gönder