1、首先將如下數據提交到ES中建立索引
{"number":32768,"singer":"楊坤","size":"5109132","song":"今夜二十歲","tag":"中國好聲音","timelen":319}
{"number":32769,"singer":"汪峯","size":"6001697","song":"我愛你中國","tag":"中國好聲音","timelen":375}
{"number":32780,"singer":"汪峯","size":"4070469","song":"我如此愛你","tag":"中國好聲音","timelen":254}
{"number":32796,"singer":"大小姐","size":"3046005","song":"登大人","tag":"兒歌","timelen":190}
{"number":32896,"singer":"Bandari","size":"3869593","song":"The Golden Land","tag":"胎教音樂","timelen":241}
{"number":32977,"singer":"Bandari","size":"3477514","song":"Childhood Memory","tag":"歐美","timelen":217}
2、ElasticSearch's query DSL
搜索的RESTful接口是_search
URL形式:http://ip:port/index/type/_search
query查詢語句通過POST的方式發送到ES。
a、基本的全文檢索
查找索引庫中包含"音樂"的記錄
{
"query": {
"query_string": {
"query": "音樂"
}
}
}
b、指定字段進行檢索
查找song字段中含有中國的記錄
{
"query": {
"query_string": {
"query": "中國",
"fields": [
"song"
]
}
}
}
c、多字段權重查詢
在song、tag兩個字段中搜索關鍵字“中國”,如果在song字段中出現權重是2,tag中是默認的1。通過結果可以看到歌曲名中含有中國是排在前面。
{
"query": {
"multi_match": {
"query": "中國",
"fields": [
"song^2",
"tag"
]
}
}
}
更多詳細的查詢語法可以參考:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-queries.html