分布式搜索elasticsearch 文献检索索引 入门
2015-07-07 21:02
405 查看
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接口是_searchURL形式: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两个字段中搜索keyword“中国”,假设在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
相关文章推荐
- 深度学习成长的烦恼
- UVALive Proving Equivalences (强连通分量,常规)
- 【scrapy】相关
- 搭建openstack之前的环境准备
- Rectangle Area
- centos 配置php开发环境(eclipse PDT+Zend Debugger)
- 虚幻4引擎2d游戏基础
- XML小结
- [站点推荐]001.学习新技能的37个最佳网站(The 37 Best Websites To Learn Something New)
- 文件系统
- 一不小心把oschina给戒了
- 棉兰中文离线地图App上线
- 个人建站
- 【剑指offer】面试题31:连续子数组的最大和
- 【html5】这些新类型 能提高生产力
- 内存管理
- [刷题]Subsets
- OJ嘻唰唰之友元类(1)计算两点之间的距离
- 编码规范(二)之命名规范
- Java数组练习题小结