zoukankan      html  css  js  c++  java
  • ElasticSearch 入门

    ElasticSearch
    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能
    Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。
    为什么要用ElasticSearch
    我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题。
     
    es安装
     
    java版本要求:最低1.7 
    官网下载:
    windows下安装:
    1.解压下载的压缩包,
    2.编辑elasticsearch根目录/config/elasticsearch.yml
       cluster.name : 集群名,分布式部署,确保该名称唯一。
       network.host: 192.168.0.61 :ip地址
       http.port: 9200  端口
      
    3.启动根目录下的bin文件夹下的elasticsearch.bat即可
     
    kibana是一个与elasticsearch一起工作的开源的分析和可视化的平台。使用kibana可以查询、查看并与存储在elasticsearch索引的数据进行交互操作。使用kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。 
    windows下安装:
    1.解压下载的压缩包,
    2.kibana根目录下config/kibana.yml
      server.port :5601   kibana端口
      server.host :localhost ip地址
      elasticsearch.url : "http://192.168.0.61:9200"   es连接
    3.启动根目录下的bin文件夹下的kibana.bat
     
    打开浏览器 访问 http://localhost:5601/
     
    接下来就可以操作es了
    es操作
    新建索引包含setting和mapping
    PUT /my_index_name
    {
      "settings": {
        "number_of_replicas": 1,
        "number_of_shards": 3,
        "analysis": {},
        "refresh_interval": "1s"
      },
      "mappings": {     
        "my_type_name": {    //type名字
          "properties": {    //type的字段属性
            "title": {
              "type": "text",
              "analyzer": "ik_max_word"
            },
            "name":{
              "type": "text",
              "analyzer": "ik_max_word"
            },
            "num":{
              "type": "integer"
            }
          }
        }
      }
    }

    也可以单独创建setting和mapping

    字段属性创建好以后,如果要修改设置的某个字段的属性是修改不了的,可以

    添加数据

    POST my_index_name/my_type_name
    {
      "title":"测试title",
      "name":"测试",
      "num":1
    }

    修改数据

    POST my_index_name/my_type_name/AWZ8KV5GLlhkZVrwqqUS
    {
      "title":"测试title",
      "name":"测试111",
      "num":1
    }

    删除索引  

    不能删除某个类型

    DELETE my_index_name
    es查询
    1.简单基本操作
    GET _search
    {
      "query": {
        "match": {
          "FIELD": "TEXT"
        }
      }
    }
    GET /_search
    {
      "query": {
        "bool": {  //组合查询,各个子句之间的逻辑关系是与(and)
          "must": [  必须满足的条件 
            {
              "match": {  //普通匹配查询 
                "username": "smith"  
              }
            }
          ],
          "must_not": [  //必须不满足某条件
            {
              "match_phrase": {  //短语匹配查询
                "username": "granny smith"
              }
            }
          ],
          "filter": [  //过滤器 文档必须匹配该过滤条件,跟must子句的唯一区别是,filter不影响查询的score;
            {
              "exists": { //存在
                "field": "title"
              }
            }
          ]
        }
      },
      "aggs": {  //聚合
        "my_agg": {  //聚合名 
          "terms": {
            "field": "user",
            "size": 10
          }
        }
      },
      "highlight": {  //高亮
        "pre_tags": [
          "<em>"
        ],
        "post_tags": [
          "</em>"
        ],
        "fields": {
          "body": {
            "number_of_fragments": 1,
            "fragment_size": 20
          },
          "title": {}
        }
      },
      "size": 20,  //一次查询的数据量
      "from": 100,  //从第几条数据开始
      "_source": [  //要查询的字段
        "title",
        "id"
      ],
      "sort": [  //排序
        {
          "_id": {
            "order": "desc"
          }
        }
      ]
    }

    多字段查询

    "multi_match": {
      "query": "Elastic",  //匹配的字
      "fields": ["user.*", "title^3"],  //需要匹配的字段
      "type": "best_fields"    //multi_match查询在内部执行的方式  best_fields(默认)查找与任何字段匹配的文档
    }

    组合查询

    "bool": {
      "must": [],
      "must_not": [],
      "filter": [],
      "should": [],
      "minimum_should_match" : 1    //最小匹配度
    }

    范围搜索

    "range": {
      "age": {
        "gte": 10,
        "lte": 20,
        "boost": 2    
      }
    }
     
     
     
     
     
     
  • 相关阅读:
    Qt安装
    Windows下查看进程的工具
    編譯 Boost 1.35.0 (Visual Studio 2005 (VC 8.0) + Windows XP
    boost1.35.0编译日志
    Linux
    Tool
    word cup
    IIS Study
    Oracle PL/SQL语言基础1 [初级] (http://www.cnmpa.com/edu/a1/8/892f4a44496ef382.asp)
    Psychology
  • 原文地址:https://www.cnblogs.com/double-yuan/p/9799498.html
Copyright © 2011-2022 走看看