美文网首页中间件
ES入门3-全文检索概述

ES入门3-全文检索概述

作者: 加碘盐_ed6c | 来源:发表于2018-05-06 21:05 被阅读0次

全文检索定义

全文检索是将存储于数据库中整本书、整篇文章中的任意内容信息查找出来的检索。它可以根据需要获得全文中有关章、节、段、句、词等信息,也就是说类似于给整本书的每个字词添加一个标签,也可以进行各种统计和分析。类似于mysql里的like语句。例如,它可以很快的回答“《红楼梦》一书中“林黛玉”一共出现多少次?”的问题。

全文索引就是把内容根据词的意义进行分词,然后分别创建索引,例如”你们的激情是因为什么事情来的” 可能会被分词成:“你们“,”激情“,“什么事情“,”来“ 等token这样当你搜索“你们” 或者 “激情” 都会把这句搜出来。


Match Query

比如我们要查询索引为twitter,索引类型为tweet的user为kimchy的文档记录。

curl -XGET  'http://localhost:9200/twitter/tweet/_search'  -d '
{
  "query" :
  {
      "match":{"user":"kimchy"}
  }
}'

Match Query也还包括一些其它的参数:query、operator、zero_terms_query等

{
  "query" :
  {
      "match":{
      "user":"kimchy",
      "message":{
                 "query" : "this is a test",
                 "operator" : "and"
                 }
              }
   }
}

Term Query

term query在给定的字段里查询词或者词组。

curl -XGET  'http://localhost:9200/twitter/tweet/_search' -d '
{
  "query" :
  {
  "term" : { "user" : "Kimchy" }
  }
}
'

Term与Match的区别,如下代实例

curl -XGET  'http://localhost:9200/my_index/my_type/_search' -d '
{
  "query": {
    "match": {
      "full_text": "Quick Foxes!" 
    }
  }
}
'

curl -XGET  'http://localhost:9200/my_index/my_type/_search' -d '
{
  "query": {
    "term": {
      "full_text": "Quick Foxes!" 
    }
  }
}
'

在默认情况下,match是查询匹配"Quick"或者"Foxes!"或者"Quick Foxes!",而term只查询匹配"Quick Foxes!"。


Regexp Query

假设现在你想匹配在W地域(Area)的所有邮政编码,那我们怎样来匹配呢?我们这一节就来介绍一下regexp匹配。

curl -XGET  'http://localhost:9200/my_index/address/_search -d '
{
    "query": {
        "regexp": {
            "postcode": "W[0-9].+" 
        }
    }
}
'

这个正则表达式的规定了词条需要以W开头,紧跟着一个0到9的数字,然后是一个或者多个其它字符。
regexp所要匹配的字段要以正则式的形式出现。如以上代码中"W[0-9].+"。


Range Query

假设现在你想匹配年龄(age)在10到20岁之间的所有信息,我们这一节就来讲解如何匹配,将会用range来匹配。

curl -XGET  'http://localhost:9200/class/students/_search' -d '
{
    "query":{
    "range" : {
        "age" : {
            "gte" : 10,
            "lt" : 20
            }
        }
    }
}
'

其中range的参数包括gt(>)、lt(<)、gte(>=)、lte(<=)、boost。

相关文章

  • ES入门3-全文检索概述

    全文检索定义 全文检索是将存储于数据库中整本书、整篇文章中的任意内容信息查找出来的检索。它可以根据需要获得全文中有...

  • 全文检索概述

    一、数据分类: 结构化数据:具有固定格式或有固定长度的数据。 例如:数据库中的表。 非结构化数据:不定长度或无固定...

  • ES全文检索-高亮

    ES全文检索-高亮 全文检索高亮统计各个索引命中情况 http://192.168.1.1:9200/dwd-p1...

  • Lucene & 全文检索

    目录结构:1.全文检索 2.Lucene入门3.Lucene进阶 全文检索 一, 生活中的搜索:1.Win...

  • ES multi_match 你真的懂了吗

    ES的核心就是全文检索,在实际业务中全文检索用到最多的查询方式就是multi_match语法,该语法参数比较多,用...

  • 2018-04-10

    /** *该篇文章主要介绍如何学习ES,如何入门,ES简单的检索方式等(ES版本2.4.1) **/ public...

  • 88_熟练掌握ES Java API_对汽车品牌进行全文检索、精

    88_熟练掌握ES Java API_对汽车品牌进行全文检索、精准查询和前缀搜索 添加数据 全文检索方法 多字段搜...

  • Mysql全文检索

    一、概述MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文检索来提高匹配的速度。 二...

  • Elasticsearch难学?十万字笔记 83.8k星,盘

    Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据...

  • 编程随笔-ElasticSearch知识导图(4):检索

    1. 原理   全文检索是ES的核心功能。ES中的数据按数据特性可分为两类:确切值及全文文本。ES中如keywor...

网友评论

    本文标题:ES入门3-全文检索概述

    本文链接:https://www.haomeiwen.com/subject/udfprftx.html