elasticsearch入门

最近做项目遇到了一个文本检索功能,最终选择使用es做解决方案,想顺便整理一下相关知识,留给自己以后复习用
索引->类型->文档
安装版本为6.4.3
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-4-3
这里有个版本问题需要注意:在6以后不支持一个索引下有多个type在7版本中会移除type具体原因可见官网
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/removal-of-types.html
使用插件elasticsearch-head实现可视化操作 Google的话在扩展程序里直接可以下

解压之后修改配置文件elasticsearch-6.4.3\elasticsearch-6.4.3 - slave2\config\elasticsearch.yml
建集群起三个服务

master的配置增加如下

http.cors.enabled: true//可跨域访问
http.cors.allow-origin: "*"//不设拦截
cluster.name: brainstorming//集群名
node.name: master//结点名
node.master: true//是否为主结点

随从的配置(两个随从node.name和port设置成不一样即可)

cluster.name: brainstorming
node.name: slave2
network.host: 127.0.0.1//配置ip
http.port: 8000//配置端口
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]//用来连接主节点所以设为主节点所在的网络

创建索引

PUT			127.0.0.1:9200/book 索引名
{
    "settings" : {
        "index" : {
            "number_of_shards" : 5, //分片数
            "number_of_replicas" :1//副本数
        }
    },
    "mappings": {
        "nouvel": {//类型名
            "properties": {
                "word_count": {
                    "type": "integer"
                },
                "author": {
                    "type": "keyword"
                },
                "title": {
                    "type": "text"
                },
                "publish_date": {
                    "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
                    "type": "date"
                }
            }
        }
    }
}

使用POST请求 hostnet:port/index/_search
子条件查询
query context
查询时会计算一个score
有全文本查询和字段级别查询
模糊匹配 全文本的一种

{
    "query": {
        "match":{
            "author":"xiaowang"
        }
    }
}

习语匹配(不拆分字段)

{
    "query": {
        "match_phrase":{
            "title":"ElasticSearch入门"
        }
    }
}

多字段模糊匹配

{
    "query": {
        "multi_match":{
            "query":"ElasticSearch入门",
            "fields":["title","author"]
        }
    }
}

语法查询

{
    "query": {
        "query_string":{
            "query":"ElasticSearch OR JAVA"
        }
    }
}

结构化查询里的范围查询

{
    "query": {
        "range": {
            "word_count":{
            "gte": 1000,//大于等于
            "lte": 2000
            }
        }
    }
}

filter context

{
    "query": {
        "bool": {
            "filter": {
                "term":{
                    "count":1000//过滤条件
                }
            }
        }
    }
}

filter查询会被es缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值