• ElasticSearch基础之查询功能


    【01】查询类型:

    【02】基本查询和组合查询是参与打分的

    1.创建映射:

    注意事项:基于上面映射的创建:

     "type": "keyword"  # 如果某个字段的值被设置为keyword,那么这个值就不会被分析器所分析
     "type": "text" # 这里设置类型为text,但我们没有设置分词器使用ik_max_word,因此ES会使用内置的分析器对中文进行分词,但是这种效果比不上ik_max_word

    对于中文分词器,推荐去Github上搜索:

    去github上去寻找这个插件:https://github.com/medcl/elasticsearch-analysis-ik

    【02】在上面的基础上,我们来导入4条数据:

    POST lagou/job/
    {
      "title":"python django 开发工程师",
      "company_name": "美团科技有限公司",
      "desc": "对django的概念熟悉,熟悉python基础知识",
      "comments":20,
      "add_time":"2017-4-1"
    }
    POST lagou/job/
    {
      "title":"python redis分布式爬虫基本",
      "company_name": "百度科技有限公司",
      "desc": "对scrapy的概念熟悉,熟悉redis基础知识",
      "comments":5,
      "add_time":"2017-4-15"
    }
    POST lagou/job/
    {
      "title":"elasticsearch打造搜索引擎系统",
      "company_name": "阿里巴巴科技有限公司",
      "desc": "熟悉数据结构算法,熟悉python的基本开发",
      "comments":15,
      "add_time":"2017-4-12"
    }
    POST lagou/job/
    {
      "title":"python打造推荐引擎系统",
      "company_name": "阿里巴巴科技有限公司",
      "desc": "熟悉推荐引擎的原理以及算法,掌握C语言",
      "comments":66,
      "add_time":"2017-4-12"
    }

    【001】重要查询之match查询,使用了分词查询:

    【002】【02】term查询与get查询的区别:term查询传递进来的关键词是不会做任何处理的,也就是说不会进行分词,如下查询python爬虫是查询不到的:

    term查询查询不到,但是match查询却可以,如下:

     company_name是keyword类型,因此不会被分词器分析,只有完全匹配:

     同样的道理,即使match查询可以分词,但是company_name是key_word类型,因此也是查询不到的,如下:

    terms查询:只要满足了数组里面的任何一个值都可以查询出来

    基于From和size来完成分页——# 控制查询的返回数量,主要用来做分页

     未完待续

  • 相关阅读:
    原生js螺旋运动
    拉美电子游戏市场创收45亿美元
    ZOJ 3229 Shoot the Bullet
    Java的压缩、解压及压缩加密、解密解压 样例
    java环境变量配置
    git在myelispse中的安装
    java注解
    Python测试框架doctest
    python中的协程
    Flask log配置,实现按照日期自动生成日志文件
  • 原文地址:https://www.cnblogs.com/pyspark/p/8717798.html
Copyright © 2020-2023  润新知