精华内容
下载资源
问答
  • 常见检索字段
    千次阅读
    2020-01-19 15:26:04


    上个小节我们了解了text全文本类型。下面我来学习es中另外一种重要的字符串类型keyword。

    一、概述

    关键字。关键字是个精准值,通常用于过滤、排序、参与聚合等。关键字不参与分词

    二、使用

    上边介绍的text文本字段在映射时要设置分词器,keyword字段为关键字字段,通常搜索keyword是按照整体搜索,所以创建keyword字段的索引时是不进行分词的,比如:邮政编码、手机号码、身份证等。keyword字段通常 用于过虑、排序、聚合等。

    更多相关内容
  • 1、资源内容:整理了近千种开发中常见字段英文命名、字段名缩写、几乎不需要去因汉字去翻译成英文再去缩写。 2、使用场景:开发时由汉字关键字去检索对应的英文简写即可; 3、特点:共有3000个左右变量命名可供...
  • 比如常见的邮箱登录、或是手机号登录。 如果不给它创建索引,则MySQL就会进行全局扫描,非常耗时。那么,类似邮箱地址这样的字符串,我们应该如何给它创建索引呢?这里简单介绍几种方法。 几种方法 比如我们有一张表...

    背景

    我们在业务场景中经常会碰到通过某个字符串查询对应记录的情况。比如常见的邮箱登录、或是手机号登录。
    如果不给它创建索引,则MySQL就会进行全局扫描,非常耗时。那么,类似邮箱地址这样的字符串,我们应该如何给它创建索引呢?这里简单介绍几种方法。

    几种方法

    比如我们有一张表user_info用于存储用户登录信息,包括自增主键ID、邮箱地址、对应密码。
    这里我们经常会用到的SQL操作是select email, password from user_info where email="XXXXXXX"

    直接创建索引

    第一种方法当然是直接使用email来创建索引。这种方法虽然简单粗暴且会占用大量的存储空间,但是有一个好处,就是回表操作只需一次就行。

    使用前缀索引

    所谓前缀索引,比如前面的示例,就是将email字段的前缀截取下来,然后作为索引来使用。

    添加索引的SQL语句为:alter table user_info add index index_eamil(email(9)),这里就添加了一个email字段前9位字符为前缀索引。

    假如email字段的前9位字符就可以唯一的标示一个email地址,比如前9位是不同的数字,后面都是@qq.com。那么这样就做到了完全的区分度。在选择某email时,比如select email, password from user_info where email="123456789@qq.com",MySQL会拿前9位去索引查找,查找得到则会回表到主键树中获取到对应的记录。

    使用前缀索引,一定要权衡好前缀选取的长度,因为前缀的长度就意味着区分度。如果前缀索引可以完全区分,那当然是最好的,这样只需要回表一次就可以拿到数据了。区分度越高越好,区分度越高,也就使得回表操作次数越少。

    只要前缀长度取的合适,就可以既有满意的区分度,又有满意的存储空间占用。

    不过使用前缀索引也有一个劣势,在于使用前缀索引会影响到覆盖索引的使用。

    倒序存储

    倒序存储即是将对应字段倒序过来再取前缀创建索引。针对于前缀区分度低,但后缀区分度高时使用。

    比如我们需要存储一个user_info用户信息表,存储的是自增ID、身份证号、密码。身份证号就属于前缀区分度低(前缀都是一些通用代号),但后缀区分度高的字符串。

    在存储以及查询时也需要将身份证号倒过来使用。比如,在查询时,使用语句:select user_id, password from user_info where user_id=reverse(XXXXXX)

    hash存储

    将对应字段hash之后作为索引存储,hash之后冲突的概率较低,也可大大降低回表的次数。只是由于需要存储字段hash之后的数据,会增加额外存储空间的占用。

    总结

    前面简单介绍了一下几种不同的对字符串创建索引的方法。
    总结如下:

    索引方式优势劣势适用场景
    直接创建索引回表次数少索引空间占用大,且每次字符串匹配时间较长数据量不大或字符串不长的情况
    前缀索引索引空间占用小,且每次字符串匹配时间较短可能增加回表次数选取出的前缀可以有较高的区分度
    倒序存储无需添加新字段只能支持单条查询,不支持范围查询前缀区分度低,后缀区分度高
    hash存储冲突概率低,得出的索引区分度较高只能支持单条查询,不支持范围查询,且需要增加新的存储字段无需范围查询且普适性较高
    展开全文
  • 其一,元字段,元字段用于ES对每个文档自带的元数据结构,包括 _index,_type, _id,和_source等等构成。针对这一类,着重讲解它们所代表的意思和一些使用。 其二,就是字段类型(也叫属性),其包括的类型比较多...

    es中字符串类型text(全文本)

    导语

    从本小节开始我们开始学习es中常用的元数据类型和字段映射,学习和理解它们可以有助于理解es及其工作机制。

    其主要分为两大类。

    其一,元字段,元字段用于ES对每个文档自带的元数据结构,包括 _index_type_id,和_source等等构成。针对这一类,着重讲解它们所代表的意思和一些使用。

    其二,就是字段类型(也叫属性),其包括的类型比较多,如下图所示,这部分也是我们开发最常使用的使用,尤其string,数组对象集合等等都是很常用,所以也是我们重点关注的知识点。

    在这里插入图片描述

    分类

    字符串包括text和keyword两种类型

    全文本(text)

    全文本。通常用于基于文本的相关性搜索。全文本字段可以分词,即在索引执行之前通过一个分词器将字符串转换为单词列表。分词操作使得es可以在全文本字段上搜索单词。全文本字段不用于排序,很少用于聚合等操作

    示例代码

    #创建索引
    PUT example2
    #添加映射
    PUT example2/docs/_mapping
    {
      "properties": {
        "name":{
          "type":"text",
          "analyzer":"ik_max_word",
          "search_analyzer":"ik_smart",
          "index":"true",
          "store":"true"
        },
        "headImg":{
          "type":"text",
          "index":"false",
          "store":"true"
        },
        "descripton":{
          "type":"text",
          "index":"false",
          "store":"false"
        }
      } 
    }
    #查询映射
    GET example2/docs/_mapping
    
    

    下面我们来解释上面那一段话。

    1. 通过analyzer属性指定分词器。上边指定了name字段的analyzer是指在索引使用ik_max_word,搜索时使用ik_smart对于ik分词器建议是索引时使用ik_max_word将搜索内容进行细粒度分词,搜索时使用ik_smart提高搜索精确性。

    2. 通过index属性指定是否索引。默认为index=true,即要进行索引,只有进行索引才可以从索引库搜索到。但是也有一些内容不需要索引,比如:商品图片地址只被用来展示图片,不进行搜索图片,此时可以将index设置为false。

    3. 通过store属性来决定是否在source之外存储。默认store=false,每个文档索引后会在 ES中保存一份原始文档,存放在"_source"中,一般情况下不需要设置store为true,因为在_source中已经有一份原始文档了。

    4. 通过fields属性,可以对同一个字段进行多种策略的索引。通常为一个字段可以设置一个全文本字段,一个精确的keyword字段类型。示例如下。

      示例

    #添加映射
    PUT example2/docs/_mapping
    {
      "properties": {
        "name":{
          "type":"text",
          "analyzer":"ik_max_word",
          "search_analyzer":"ik_smart",
          "index":"true",
          "store":"true",
           "fields": {
                "noAnalyzerName": {
                    "type": "keyword"
                },
                "analyzerName": {
                    "type": "text",
                    "analyzer":"ik_max_word",
                }
           }
        },
        "headImg":{
          "type":"text",
          "index":"false",
          "store":"true"
        }
      } 
    } 
    

    例如上述的name的配置的2种索引的策略。

    展开全文
  • 计算机检索技术有哪些

    千次阅读 2021-07-27 01:43:19
    4、字段限定检索。5、加权检索。6、聚类检索。本教程操作环境:windows7系统、Dell G3电脑。计算机检索是指人们在计算机或计算机检索网络的终端机上,使用特定的检索指令、检索词和检索策略,从计算机检索系统的...

    计算机检索技术:1、布尔逻辑检索;利用布尔逻辑算符进行检索词或代码的逻辑组配。2、截词检索;截词检索是计算机检索系统中应用非常普遍的一种技术。3、位置检索。4、字段限定检索。5、加权检索。6、聚类检索。

    2666b6a7daed57975449de01d7931543.png

    本教程操作环境:windows7系统、Dell G3电脑。

    计算机检索是指人们在计算机或计算机检索网络的终端机上,使用特定的检索指令、检索词和检索策略,从计算机检索系统的数据库中检索出需要的信息,继而再有终端设备显示或打印的过程。

    在计算机信息检索系统中,常用的检索技术主要有以下六种:

    1、布尔逻辑检索

    利用布尔逻辑算符进行检索词或代码的逻辑组配,是现代信息检索系统中最常用的一种技术。常用的布尔逻辑算符有三种,分别是逻辑或“OR”、逻辑与“AND”和逻辑非“NOT”。

    2、截词检索

    截词检索是计算机检索系统中应用非常普遍的一种技术。由于西文的构词特性,在检索中经常会遇到名词的单复数形式不一致;同一个意思的词,英美拼法不一致;词干加上不同性质的前缀和后缀就可以派生出许多意义相近的词等等。这是就要用到截词检索。

    3、位置检索

    位置检索也叫全文检索、邻近检索。所谓全文检索,就是利用记录中的自然语言进行检索,词与词之间的逻辑关系用位置算符组配,对检索词之间的相对位置进行限制。这是一种可以不依赖主题词表而直接使用自由词进行检索的技术方法。

    4、字段限定检索

    字段限定检索是指限定检索词在数据库记录中的一个或几个字段范围内查找的一种检索方法。在检索系统中,数据库设置的可供检索的字段通常有两种:表达文献主题内容特征的基本字段和表达文献外部特征的辅助字段。

    5、加权检索

    加权检索是某些检索系统中提供的一种定量检索技术。加权检索同布尔检索、截词检索等一样,也是文献检索的一个基本检索手段,但与它们不同的是,加权检索的侧重点不在于判定检索词或字符串是不是在数据库中存在、与别的检索词或字符串是什么关系,而是在于判定检索词或字符串在满足检索逻辑后对文献命中与否的影响程度。

    6、聚类检索

    聚类是把没有分类的事物,在不知道应分几类的情况下,根据事物彼此不同的内在属性,将属性相似的信息划分到同一类下面。

    想要查阅更多相关文章,请访问PHP中文网!!

    展开全文
  • 检索客户字段(如果有) 检索客户产品(如果有) 提供页面特定的逻辑或确定最终用户的当前页面 可能的权限列表 在门户网站上找到的常见URL列表 ##免责声明 该插件按原样提供。 随意进行分叉,修改,以适应您的需求...
  • 文献检索方法与检索策略制定

    千次阅读 2021-07-28 07:14:19
    文献检索方法与检索策略制定 (5页) 本资源提供全文预览,点击...最为常见的是使用 布尔逻辑算符(and、or、not)将检索词联系起来,进行逻辑运算检索。1、 逻辑“与”逻辑运算符:“AND”、逻辑表达式:“A AND B”...
  • PGSQL JSONB或者JSON类型字段常见用法

    千次阅读 2022-05-16 18:57:21
    PGSQL jsonb或json类型字段常见用法
  • 计算机信息检索基本算符?含义

    千次阅读 2021-07-27 02:18:32
    梁科回答:1.布尔逻辑算符规定检索词之间的逻辑关系的...其含义是,检出的记录中,至少含有两个检索词中的一个.OR算符的基本作用是扩大检索范围,增加命中文献量,提高检索结果的查全率,OR运算符还有一个去重的功能.在...
  • 1.计算机检索原理计算机一方面接受用户的检索提问,一方面从数据库中读取文献记录,然后把两者进行比较,即检索提问标识与文献记录标识进行匹配运算,如果比较的结果一致,那么这篇文献就会作为命中文献在检索结果中...
  • 信息检索期末复习

    千次阅读 2021-08-08 23:00:13
    (2)主题途径检索:题名、关键词、主题、摘要、全文任意字段. 直观、灵活,检索词源于自然语言。 适合:专指性较强的,狭窄主题,或多科学、跨科学等多位复杂的特性检索。 七、【分类法的分类原则和分类号结构】...
  • Elasticsearch(二):进阶检索

    万次阅读 2020-03-03 17:21:10
    Elasticsearch DSL检索语句、Mapping、分词、搜索原理的介绍和说明
  • 信息检索的策略和方法

    千次阅读 2021-06-26 04:49:03
    【摘要】随着数据信息库积累的数据和主题越来越多,怎样快速,有效,经济地检索某个主题的所有信息,就成了一个十分热门的课题.本文中给出了计算机信息检索的策略和方法,以及最终有助于网络用户查找信息的检索技术...
  • 截词检索

    2021-07-25 08:27:47
    截词检索是预防漏检提高查全率的一种常用检索技术,大多数系统都提供截词检索的功能。截词是指在检索词的合适位置进行截断,然后使用截词符进行处理,这样既可节省输入的字符数目,又可达到较高的查全率。尤其在西文...
  • Jira实战 | 自定义字段

    千次阅读 2020-12-17 09:52:33
    限制自定义字段的数量,只创建供多个项目进行查询和使用的必要字段,太多的自定义字段会影响性能。 如果需要不同的字段描述或值的时候,仅需使用字段配置或是上下文功能,千万不要使用重复的自定义字段。 ...
  • 要]针对国内常用中文数据库检索功能相似但又有区别的情况,对比分析了CBMWEB、CMCC、CNKI 3个中文常用数据库的检索途径、检索字段、截词符、精确检索、检索历史等功能,并给出实例,同时指出常见使用错误,以期方便用户...
  • mysql数据库字段类型详解

    千次阅读 2021-01-26 07:16:13
    当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR...
  • django数据库字段类型

    千次阅读 2022-04-14 18:52:43
    django模型中常见字段类型
  • 常用中文图书和期刊数据库 页面导航: 一、馆藏目录(OPAC或IPAC) 二、电子图书(超星、读秀) 三、电子期刊(知网\万方\维普) ...功能:书目检索、分类浏览、期刊导航、新书通报、购书推荐、信息发布、读者推...
  • ElasticSearch 基本原理之全文检索

    千次阅读 2020-11-01 14:39:14
    MySQL:通过分库分表可以存海量数据,但是做数据检索效率是达不到毫秒级别,并且数据检索只能支持模糊查询,不支持全文检索、分词检索 以上数据库都可以做海量数据存储,但都不适合做检索的工作。 2)如何解决单点...
  • MySQL创建计算字段

    2021-02-08 06:37:04
    这时候计算字段就发挥作用了。与前面各章介绍过的列不同,计算字段并不实际存在于数据库表中。计算字段是运行在SELECT语句内创建的。可在SQL语句内完成的许多转换和格式化工作都可以直接在客户机应用程序内完成。但...
  • 数据库表不确定字段解决方案

    千次阅读 2021-04-20 02:07:34
    文章首发在个人博客分析通常来说,在需求分析阶段会确定数据库表中的字段,同时也普遍存在一种需求,那就是表中的字段除了常见的以外,还存在一些不确定的字段。譬如电商系统,有一个 products 表保存商品记录,然而...
  • 创建计算字段存储在数据库表中的数据一般不是应用程序所需的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据; 而不是检索出数据, 然后再在客户机应用程序上重新格式化。这就是计算字段的作用。计算...
  • oracle常见查询语句总结select sum(字段) from 表名 where 条件 group by 字段 例子1. select [distinct] *| [as] [列别名],列名称 [as] [列别名]from 表名称 [表别名] [where 条件(s)] [order by 排序的字段 ...
  • 简述目录型网络检索工具的分类体系及常见类型: 答: 分类: 主题分类法 (采用一个特征或主题充当类目) ​ 学科分类法 (以知识分类为基础,按照学科从属/层次关系来组织网络资源) ​ 图书分类法 (图书馆业长期采用的...
  • stackflow 上面找到一个不错的答案,翻译一下记录下来。Q:有三个表:regions,...现在要加一个popular_area表,表中有两个字段:region_id和popular_place_id。是否能将popular_place_id表示成countries或sta...
  • Mysql的字段类型详解

    千次阅读 2022-04-21 08:21:27
    B、TEXT类型与BLOB类型相同点 在TEXT或BLOB列的存储或检索过程中不存在大小写转换,当未运行在严格模式下时,若为TEXT或BOLB列分配一个超过该列类型的最大长度值时,则值会被截取。若截取的字符不是空格,将提示一...
  • MongoDB允许深入文档内部,对嵌套字段和数组建立索引;嵌套对象和数组字段可以和复合索引中的顶级字段一起使用,多数情况下与“正常”索引字段的行为也是一致的。 考虑以下文档集合(user ): db.user....
  • 通俗点来说,全文检索主要同于搜索引擎中,像百度搜索、谷歌搜索等以及其他的大数据搜索,像我们平时建立的数据库(数据量不是很大的情况),基本用不到全文检索,用普通的查询就能满足大部分需

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,361
精华内容 32,944
热门标签
关键字:

常见检索字段