Elasticsearch 7.x 深入【8】Suggester

1. 借鉴

极客时间 阮一鸣老师的Elasticsearch核心技术与实战
Elasticsearch 5.x Suggester详解
店名大全 -_-||
官方文档 search-suggesters
详解编辑距离(Edit Distance)及其代码实现
Edit Distance 算法实现及其设计原理
leetcode edit-distance
elasticsearch suggest实现搜索词自动补全
Elasticsearch之建议器suggester
Elasticsearch搜索Suggest功能优化
【Elasticsearch】7.2 自动补全、纠错、拼音搜索
elasticsearch使用more_like_this实现基于内容的推荐
Field datatypes(2)
elasticsearch补全功能之只补全筛选后的部分数据context suggester
Elasticsearch学习笔记5: suggest实现搜索补全
Phrase Suggester
lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算法
关于Lucene的词典FST深入剖析
FST
Completion Suggester.md

2. 开始

Suggester,顾名思义,即用户输入后,进行自动补全或者纠错,并给出相应的结果。
其原理是将输入分解为token,然后再索引中查找相似的关键词(term)并返回
在es里面有四种Suggester:

  • Term Suggester
  • Phrase Suggester
  • Completion Suggester
  • Context Suggester

我们逐一来看下

数据准备:使用到的数据请看这里

Term Suggester

The term suggester suggests terms based on edit distance. The provided suggest text 
is analyzed before terms are suggested. The suggested terms are provided per 
analyzed suggest text token. The term suggester doesn’t take the query into account 
that is part of request.

term suggester基于编辑距离算法实现。在提供建议之前,对输入的文本进行分析。

我们在索引中有一个“三生石工艺坊批发店”这个店铺,我们基于这个来查询。

  • 我们首先来看下它的分词情况:[这里为啥是ik_smart而不是ik_max_word呢?因为我指定的search_analyzer是ik_smart,在suggest查询是,默认使用search_analyzer分词匹配,当然也可以自己指定,这个在官方文档上有描述,下面我会将它的选项列举出来,稍安勿躁]
GET /store_suggest/_analyze
{
  "analyzer": "ik_smart",
  "text": ["三生石工艺坊批发店"]
}
  • 嗯,我们来看下它的token[为了避免拉的过长,我只保留了token字段]
{
  "tokens" : [
    { "token" : "三生石", },
    { "token" : "工艺", },
    { "token" : "坊", },
    { "token" : "批发店", }
  ]
}
  • 可以看到上面我们分词的结果中有三生石,那接下我故意输错为“三声石”,让我们来构建一个term suggester,看下它会提示我们什么
GET /store_suggest/_search
{
  "suggest": {
    "term-suggestion": {
      "text": "三声石", // 我们输入的内容
      "term": {
        "field": "name", // 指定哪个字段
        "suggest_mode": "missing", // 参数1
        "min_word_length": 2 // 参数2
      }
    }
  }
}
  • 我们来看下结果
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 0,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "suggest" : {
    "term-suggestion" : [
      {
        "text" : "三声",
        "offset" : 0,
        "length" : 2,
        "options" : [
          {
            "text" : "三生",
            "score" : 0.5,
            "freq" : 1
          }
        ]
      },
      {
        "text" : "石",
        "offset" : 2,
        "length" : 1,
        "options" : [ ]
      }
    ]
  }
}
  • score是通过“编辑距离算法”实现的,可以看到我借鉴的文章,关于编辑距离的,讲的挺好。
  • 可以看到“三声”提示我们应该为“三生”,我在查询时候使用了几个参数,我们来解释一下
  • 这些参数是四种suggester查询的公共参数
字段名称 解释 默认值
text      输入内容 -
field 作用的字段 -
analyzer 使用的分词器 search analyzer
size 使用的分词器 每个建议文本返回的最大提示数量
sort 如何排序:
score:首先按分数排序,然后按文档频率排序,最后按关键词本身排序。
frequency:首先按文档频率排序,然后是相似度评分,最后是关键词本身。
-
suggest_mode 模式:
missing:如果索引中已经存在,就不提供建议
popular:推荐出现频率更高的词
always:无论是否存在,都提供建议
-
  • 下面这些是Term Suggester独有的参数
字段名称 解释 默认值
max_edits                                               编辑距离:只能是1和2之间的值。任何其他值都会导致抛出错误的请求。 -2             
prefix_length 必须匹配的最小前缀字符的数量。 1
min_word_length 建议的文本术语必须具有的最小长度才能被包括在内。 4
string_distance 要使用哪个字符串距离实现来比较建议的term的相似性
internal:默认值,基于damerau_levenshtein,对于比较索引内的词的字符串距离进行了高度优化
damerau_levenshtein:基于Damerau-Levenshtein算法
levenshtein:基于Levenshtein edit distance算法
jaro_winkler:基于Jaro-Winkler算法
ngram: 基于character n-grams算法
internal
shard_size 设置要从每个分片中检索的建议的最大数量。在reduce阶段,只根据size选项返回前N个建议。默认size选项,将这个值设置为大于size的值,这有助于获得更准确的文档频率,以牺牲性能为代价获得拼写更准确。由于term是在分词时产生的,因此分片级的文档中拼写正确的频率可能并不精确。增加这值将使这些文件频率更精确。 -
max_inspections 一个因子,用于与shards_size相乘,以便检查shard级别上的更多候选拼写更正。以牺牲性能为代价来提高精度。 5
min_doc_freq 建议中出现的文档数量的最小阈值。这可以指定为绝对数量,也可以指定为文档数量的相对百分比。这可以通过只建议高词频的term来提高质量。默认为0f,未启用。如果指定的值大于1,则该数字不能是小数。这个选项使用分片级文档频率。 0f
max_term_freq 建议文本标记可以存在的文档数量的最大阈值,以便将其包括在内。可以是表示文档频率的相对百分比数(例如0.4)或绝对数。如果指定的值大于1,则不能指定分数。这可以用来排除高频术语(通常拼写正确)的拼写检查。这也提高了拼写检查的性能。这个选项使用碎片级文档频率。 0.01

Phrase Suggester

The phrase suggester adds additional logic on top of the term suggester to select entire 
corrected phrases instead of individual tokens weighted based on ngram-language 
models. In practice this suggester will be able to make better decisions about which 
tokens to pick based on co-occurrence and frequencies.

phrase suggester 在 term suggester 之上添加额外的逻辑以选择整个经校正的短语,而不是基于 ngram-language 模型加权的单个 token 。

  • 我们构建一个看下效果
GET /store_suggest/_search
{
  "suggest": {
    "phrase-suggestion": {
      "text": "三生时工艺坊批发店",
      "phrase": {
        "field": "name",
        "max_errors": 4,
        "confidence": 0,
        "direct_generator": [{
          "field": "name",
          "suggest_mode": "missing"
        }],
        "highlight": {
          "pre_tag": "
                    
                    
  • Beekeeper Studio:高颜值且免费的SQL开发工具 开源项目精选 sql数据库
    BeekeeperStudio是一款免费开源的SQL开发和数据库管理工具,具有美观高效、简单易用的特点。BeekeeperStudio基于Vue.js开发,遵循MIT开源协议,支持Windows、Linux以及macOS平台。Stars数17842Forks数1170主要特点安全连接:除了正常的连接,也可以使用SSL加密连接或通过SSH隧道连接;SQL自动补全:代码编辑器支持语法高亮和表名自动补全
  • 我所认识的区块链 whg1016 区块链
    什么是区块链区块链是一个多节点共同参与,共同确认的记账系统,账本由是由一串串数据块组成的,下一个数据块记录了上个数据的hash,所有的块按照顺序形成一个完整的数据链条。每个节点都有完全一致的账本数据,记录的数据不可篡改和不可伪造。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。区块链的由来区块链起源于Bitcoin,2008年11月1日,一位自称中本聪(S
  • 近期计算机领域的热点技术 0dayNu1L 云计算量子计算人工智能
    随着科技的飞速发展,计算机领域的新技术、新趋势层出不穷。本文将探讨近期计算机领域的几个热点技术趋势,并对它们进行简要的分析和展望。一、人工智能与机器学习人工智能(AI)和机器学习(ML)是近年来计算机领域最为热门的话题之一。AI和ML技术已经广泛应用于图像识别、自然语言处理、智能推荐等领域,并取得了显著的成果。随着技术的不断进步,AI和ML将更深入地渗透到各个行业,为人类社会带来更多便利和效益。在
  • Python助力区块链互通——跨链桥接的实现与实践 Echo_Wish Python!实战!区块链python开发语言
    Python助力区块链互通——跨链桥接的实现与实践区块链技术的繁荣发展带来了巨大的生态创新,但也因各链之间的割裂局面限制了它们的潜力。例如,你或许想在以太坊上使用来自比特币的资产,却因两条链不互通而不得不求助于中心化交易所。要打破“链间壁垒”,跨链桥接(Cross-chainBridge)应运而生。今天,我以Echo_Wish的视角,通过Python代码实践,带你深入了解跨链桥接的工作原理,技术实
  • python pyttsx3文本转语音_python 利用pyttsx3文字转语音 木大木大本太 pythonpyttsx3文本转语音
    #-*-coding:utf-8-*-importpyttsx3f=open("all.txt",'r')line=f.readline()engine=pyttsx3.init()whileline:line=f.readline()print(line,end='')engine.say(line)engine.runAndWait()f.close()importwin32com.clien
  • 技术沙龙 | 从高并发架构到企业级区块链探索零售创新 weixin_33984032 区块链python数据库
    2019独角兽企业重金招聘Python工程师标准>>>伴随消费新理念的不断升级和技术创新发展,零售业逐渐被推到风口浪尖,对此京东曾表示,推动“无界零售”时代的到来理念,倡导实现成本、效率、体验的升级才是终极目标。此概念一出,零售行业的侧重点开始由销售端向技术端倾斜,趁着一年一度618来临之际,京东云特别在上海举办了主题为"从高并发架构到企业级区块链,探索无界零售的数字化创新"的技术沙龙活动。本次活
  • Android开发 哈哈哈隔 android
    AndroidAdapter是将数据绑定到UI界面上的桥接类比如:当lambada中只有一个参数时,可以用it指代@Target和@Retention是由Java提供的元注解,所谓元注解就是标记其他注解的注解,下面分别介绍https://blog.csdn.net/javazejian/article/details/71860633#%E5%A3%B0%E6%98%8E%E6%B3%A8%E8%
  • 某智慧医养服务平台Uploads存在任意文件上传漏洞(DVB-2025-8968) Byp0ss403 漏洞复现集合文件上传web安全
    免责声明本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。0x01产品介绍广西金中软件集团有限公司前身成立于1999年,隶属于广西电信下的三产公司金中信息产业有限公司,是一家集软件开发、网站建设、网络工程、系统
  • 谷歌准备斥资 230 亿收购网络安全初创公司 Wiz 网络研究观 网络研究观谷歌
    Alphabet正在就收购Wiz进行深入谈判,这将显著增强其安全能力。这将是谷歌母公司有史以来最大规模的收购。这是路透社根据匿名消息来源撰写的内容。目标收购金额为230亿美元,即211亿欧元。Wiz拥有实时检测和响应网络威胁的技术。通过实施人工智能,Wiz能够在短时间内吸引许多公司作为客户。Alphabet的收购目标定于2020年初。到2023年,Wiz的收入将达到3.5亿美元。当时,全球40%的
  • Java+Selenium+Cucumber自动化测试框架:高效软件测试的利器 测试渣 javaselenium
    一、引言在当今软件开发的快速迭代的背景下,确保软件质量和功能的正确性变得愈发关键。自动化测试作为一种提高测试效率、降低成本的有效手段,受到了广泛的关注。Java作为一门功能强大且广泛应用的编程语言,与Selenium和Cucumber相结合的自动化测试框架,为软件测试领域带来了诸多优势。本文将深入探讨这一自动化测试框架,包括其简介、各组件的作用、环境搭建、实际应用案例以及未来发展趋势等内容。二、J
  • 高频SQL50题 第一天 | 1757. 可回收且低脂的产品、584. 寻找用户推荐人、595. 大的国家、1683. 无效的推文、1148. 文章浏览 I 榛果咖啡有点苦 高频SQL50mysql
    1757.可回收且低脂的产品题目链接:https://leetcode.cn/problems/recyclable-and-low-fat-products/description/?envType=study-plan-v2&envId=sql-free-50状态:已完成考点:无selectproduct_idfromProductswherelow_fats='Y'andrecyclable
  • 大话C++之:左右值引用和std::move Kelvin7_Feng c++
    大话C++之:左右值引用和std::move什么是左值和右值什么是左值引用和右值引用std::move的应用场景在C++11引入右值引用后,一直对其使用缺乏深入理解,特别是结合std::move移动语义。恰逢最近工作里有相关优化代码使用到,可以趁机会重新学习,加深理解。什么是左值和右值从命名来理解,既然命名区分左右,左右值是相对于赋值号“=”来作锚点。左值(LValue):可以位于等号左边,有持久
  • 华为余承东“剧透”新形态手机;自DeepSeek发布以来,英伟达市值已蒸发4200亿美元;Java 24正式发布 | 极客头条 极客日报 华为智能手机java
    「极客头条」——技术人员的新闻圈!CSDN的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。整理|郑丽媛出品|CSDN(ID:CSDNnews)一分钟速览新闻点!华为余承东“揭秘”新形态手机:不是卷轴屏/伸缩屏,但男生女生都会喜欢腾讯去年营收增长8%,马化腾:重组AI团队,增加AI相关的资本开支金山办公:2024年WPSOffice全球月度活跃设备数达6.32亿,
  • Python赋能区块链溯源系统:从技术实现到应用落地 Echo_Wish Python!实战!python区块链开发语言
    Python赋能区块链溯源系统:从技术实现到应用落地在供应链管理、食品安全、药品追踪等多个领域,产品的来源和流通过程正成为消费者和企业关注的重点。传统溯源系统往往缺乏数据透明性和不可篡改性,而区块链技术的引入解决了这些痛点,将溯源信息永久记录在分布式账本上,实现全流程可追溯。那么问题来了:如何用Python这把“瑞士军刀”构建一个高效的区块链溯源系统?本文将围绕这一主题,深入探讨Python在区块
  • 医疗器械PLM验证指南:计算机系统验证的7个关键步骤 程序员
    计算机系统在医疗器械产品生命周期管理(PLM)中扮演着至关重要的角色。从研发、生产到售后,各类计算机系统支撑着医疗器械业务的高效运转。然而,确保这些系统的准确性、可靠性和安全性并非易事,计算机系统验证成为医疗器械PLM中不可或缺的环节。有效的验证能够保障医疗器械的质量,降低风险,满足法规要求,为企业的稳健发展奠定基础。接下来,我们将深入探讨计算机系统验证的7个关键步骤。规划验证策略验证策略的规划是
  • Moodle + Websoft9:创新教育的强大组合,助力教学与学习 开源软件
    Moodle+Websoft9:构建未来课堂的技术基石一、Moodle:开源生态的深度解析•模块化设计:支持超800个官方插件,如H5P交互内容创作、BigBlueButton虚拟课堂,满足个性化教学需求。•学习分析引擎:内置LearningAnalyticsAPI,可集成Python/R语言进行深度学习,预测学生学业风险。•移动优先战略:MoodleApp支持离线学习、扫码签到,2023年新增A
  • K8S学习之基础三十六:node-exporter部署 云上艺旅 K8S学习kubernetes学习贪心算法prometheus云原生
    Prometheusv2.2.1编写yaml文件,包含创建ns、configmap、deployment、service#创建monitoring空间viprometheus-ns.yamlapiVersion:v1kind:Namespacemetadata:name:monitoring#创建SA并绑定权限kubectlcreateserviceaccountmonitor-nmonitori
  • Demo发布 | ClkLog成功集成Unity3D
    前言在Clklog完成ReactNative和uni-app集成Demo后,一个游戏行业新客户提出了使用Unity3D开发的集成问题。对此,我们与客户分别进行了测试。客户使用神策Andriod原生SDK在Android端暴露接口给Unity3D的方式,验证了使用ClkLog进行数据采集的可行性。同时,ClkLog联合合作伙伴对神策Unity3DSDK(安卓端、IOS端、MacOS)进行了深入测试,
  • 快速上手系列丨如何管理 PieCloudDB Database 虚拟数仓 云原生数据库教程管理
    为增强社区用户的体验,PieCloudDBDatabase社区版已于8月完成了全面改版升级。同时,PieCloudDB社区还特别制作了《快速入门PieCloudDB社区版》系列课程,旨在帮助大家全面了解新版本,逐步探索PieCloudDB的强大功能。PieCloudDB社区版提供免费下载,可用于体验产品新特性、个人学习、PoC验证等场景,方便社区用户快速体验领先的数仓虚拟化技术。PieCloudD
  • 向量数据库 PieCloudVector 进阶系列丨打造以 LLM 为基础的聊天机器人
    本系列前两篇文章深入探讨了PieCloudVector在图片和音频数据上的应用之后,本文将聚焦于文本数据,探索PieCloudVector对于文本数据的向量化处理、存储以及检索,并最终结合LLM打造聊天机器人的全流程。在自然语言处理任务中涉及到大量对文本数据的处理、分析和理解,而向量数据库在其中发挥了重要的作用。本文为《PieCloudVector进阶系列》的第三篇,将为大家介绍如何利用PieCl
  • 基于k8s集群免密拉取需认证的仓库镜像 星溢 kubernetesdockerlinuxhttp
    一、环境背景1、k8s集群,1.17+,目前k8s最新版本已更新至V1.31版本;2、镜像仓库,如harbor、registry、portus、nexus等;3、配置镜像仓库用户登录认证,参考资料如下:harbor参考:https://www.geekby.cn/posts/harbor-https/registry参考:https://www.cnblogs.com/chen2ha/p/1478
  • React性能优化的深度解析:React.memo和useMemo的真相与误区 今天也想MK代码 持续学习持续总结react.js性能优化前端
    引言在React应用开发中,性能优化始终是开发者关注的重点。随着应用规模的扩大,组件渲染效率成为影响用户体验的关键因素。React.memo和useMemo是React提供的两个常用性能优化API,但它们常常被误解和滥用。本文将深入剖析这两个API的工作原理、适用场景,并通过实际案例分析它们的优缺点,帮助开发者做出明智的性能优化决策。技术原理React.memo与useMemo的本质区别React
  • 模型微调:让AI更懂你的魔法棒 带上一无所知的我 pytorch人工智能python
    模型微调:让AI更懂你的魔法棒✨在人工智能的世界里,模型微调(Fine-tuning)就像是一位魔法师用魔法棒对预训练模型进行“个性化改造”,让它更适应特定的任务。今天,我们就来深入探讨模型微调的技术细节,让你也能像魔法师一样,轻松驾驭AI模型!什么是模型微调?模型微调是指在预训练模型的基础上,通过少量的特定任务数据进行训练,使模型更好地适应新任务的技术。预训练模型通常是基于大规模数据集(如Ima
  • Axure高级功能深度解析一一高效原型设计的利器 招风的黑耳 Axure
    Axure作为一款专业的原型设计工具,凭借其强大的功能和灵活的交互设计,成为了众多设计师和开发者的首选。本文将深入探讨Axure的高级功能,帮助大家更好地利用这款工具,提升原型设计的效率和质量。一、Axure高级功能概览•变量管理:介绍局部变量和全局变量的使用场景、命名规则以及如何在原型设计中实现数据传递和交互逻辑。•动态面板:详细解析动态面板的工作原理,包括如何创建、编辑和管理动态面板状态,以及
  • 动态规划算法优化在资源分配问题中的应用 suyang199312 课程设计
    摘要资源分配问题广泛存在于各类生产与管理场景,合理分配资源以实现效益最大化至关重要。本文深入剖析动态规划算法在资源分配问题中的应用,详细阐述其基本原理与常规解法,针对常规解法的不足提出创新优化思路,并给出具体实现步骤。通过实际案例分析与实验验证,展示优化后的动态规划算法在提升资源分配效率和效益方面的显著优势,为相关领域的决策制定提供有力支持。引言在经济、工程、计算机科学等众多领域,资源分配问题无处
  • 加密算法的性能优化与安全性平衡研究 sigen520520 笔记
    摘要在数字化信息飞速发展的当下,数据安全至关重要,加密算法作为数据保护的核心手段,其性能与安全性直接关乎信息系统的稳定运行。本文深入剖析常见加密算法,详细分析其性能指标与安全性特点,全面探讨在提升加密速度的同时确保安全的有效方法与实践,旨在为构建高效、安全的加密体系提供理论支撑与实践指导。引言随着互联网的普及和信息技术的广泛应用,数据在传输与存储过程中面临诸多安全威胁,如数据泄露、篡改、伪造等。加
  • k8s 配置私有镜像仓库认证 狗贤 Kuberneteskubernetes容器
    1.创建Docker注册表的Secret首先,创建一个类型为dockerconfigjson的Secret,用于存储Docker注册表的认证信息。方法1:使用DockerCLI和kubectl不适用于阿里云格式不一样登录Docker注册表:dockerlogin这会生成一个包含认证信息的配置文件,通常位于~/.docker/config.json。创建Secret:kubectl-npromcre
  • 数据重放和数据倒灌的意思一样吗 赛恩斯 android
    数据重放与数据倒灌在机制上有相似性,但设计目的和适用场景存在本质差异:‌1.核心定义对比‌‌维度‌‌数据倒灌‌‌数据重放‌‌技术场景‌LiveData特有的现象,新观察者自动接收最后一次数据更新‌78通用异步流机制(如Flow的StateFlow/SharedFlow),允许新订阅者获取历史数据‌45‌设计意图‌LiveData的默认行为,旨在确保观察者始终获取最新数据‌38开发者主动配置的数据保
  • 2025React岗位前端面试题180道及其答案解析,看完稳了,万字长文,持续更新.... 祈澈菇凉 前端
    1.什么是React?它的主要特点是什么?答案解析:React是一个用于构建用户界面的JavaScript库,主要用于构建单页应用。其主要特点包括:组件化:React应用由多个可重用的组件组成,便于管理和维护。虚拟DOM:React使用虚拟DOM提高性能,通过最小化实际DOM操作来优化渲染过程。单向数据流:数据在组件之间以单向流动的方式传递,简化了数据管理和调试。声明式编程:React允许开发者以
  • PHP,安卓,UI,java,linux视频教程合集 cocos2d-x小菜 javaUIlinuxPHPandroid
    ╔-----------------------------------╗┆                           
  • zookeeper admin 笔记 braveCS zookeeper
      Required Software 1) JDK>=1.6 2)推荐使用ensemble的ZooKeeper(至少3台),并run on separate machines 3)在Yahoo!,zk配置在特定的RHEL boxes里,2个cpu,2G内存,80G硬盘   数据和日志目录 1)数据目录里的文件是zk节点的持久化备份,包括快照和事务日
  • Spring配置多个连接池 easterfly spring
    项目中需要同时连接多个数据库的时候,如何才能在需要用到哪个数据库就连接哪个数据库呢? Spring中有关于dataSource的配置:     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"   &nb
  • Mysql 171815164 mysql
    例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI TH GRANT OPTION; 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作
  • CommonDAO(公共/基础DAO) g21121 DAO
            好久没有更新博客了,最近一段时间工作比较忙,所以请见谅,无论你是爱看呢还是爱看呢还是爱看呢,总之或许对你有些帮助。         DAO(Data Access Object)是一个数据访问(顾名思义就是与数据库打交道)接口,DAO一般在业
  • 直言有讳 永夜-极光 感悟随笔
      1.转载地址:http://blog.csdn.net/jasonblog/article/details/10813313   精华: “直言有讳”是阿里巴巴提倡的一种观念,而我在此之前并没有很深刻的认识。为什么呢?就好比是读书时候做阅读理解,我喜欢我自己的解读,并不喜欢老师给的意思。在这里也是。我自己坚持的原则是互相尊重,我觉得阿里巴巴很多价值观其实是基本的做人
  • 安装CentOS 7 和Win 7后,Win7 引导丢失 随便小屋 centos
    一般安装双系统的顺序是先装Win7,然后在安装CentOS,这样CentOS可以引导WIN 7启动。但安装CentOS7后,却找不到Win7 的引导,稍微修改一点东西即可。 一、首先具有root 的权限。      即进入Terminal后输入命令su,然后输入密码即可 二、利用vim编辑器打开/boot/grub2/grub.cfg文件进行修改 v
  • Oracle备份与恢复案例 aijuans oracle
    Oracle备份与恢复案例 一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。恢复过程大致可以分为复原(Restore)与
  • JavaEE开源快速开发平台G4Studio v5.0发布 無為子
      我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V5.0版本已经正式发布。   访问G4Studio网站 http://www.g4it.org   2013-04-06 发布G4Studio_V5.0版本 功能新增 (1). 新增了调用Oracle存储过程返回游标,并将游标映射为Java List集合对象的标
  • Oracle显示根据高考分数模拟录取 百合不是茶 PL/SQL编程oracle例子模拟高考录取学习交流
    题目要求: 1,创建student表和result表 2,pl/sql对学生的成绩数据进行处理 3,处理的逻辑是根据每门专业课的最低分线和总分的最低分数线自动的将录取和落选     1,创建student表,和result表 学生信息表; create table student( student_id number primary key,--学生id
  • 优秀的领导与差劲的领导 bijian1013 领导管理团队
    责任 优秀的领导:优秀的领导总是对他所负责的项目担负起责任。如果项目不幸失败了,那么他知道该受责备的人是他自己,并且敢于承认错误。 差劲的领导:差劲的领导觉得这不是他的问题,因此他会想方设法证明是他的团队不行,或是将责任归咎于团队中他不喜欢的那几个成员身上。 努力工作 优秀的领导:团队领导应该是团队成员的榜样。至少,他应该与团队中的其他成员一样努力工作。这仅仅因为他
  • js函数在浏览器下的兼容 Bill_chen jquery浏览器IEDWRext
      做前端开发的工程师,少不了要用FF进行测试,纯js函数在不同浏览器下,名称也可能不同。对于IE6和FF,取得下一结点的函数就不尽相同:   IE6:node.nextSibling,对于FF是不能识别的;   FF:node.nextElementSibling,对于IE是不能识别的; 兼容解决方式:var Div = node.nextSibl
  • 【JVM四】老年代垃圾回收:吞吐量垃圾收集器(Throughput GC) bit1129 垃圾回收
    吞吐量与用户线程暂停时间   衡量垃圾回收算法优劣的指标有两个: 吞吐量越高,则算法越好 暂停时间越短,则算法越好 首先说明吞吐量和暂停时间的含义。   垃圾回收时,JVM会启动几个特定的GC线程来完成垃圾回收的任务,这些GC线程与应用的用户线程产生竞争关系,共同竞争处理器资源以及CPU的执行时间。GC线程不会对用户带来的任何价值,因此,好的GC应该占
  • J2EE监听器和过滤器基础 白糖_ J2EE
    Servlet程序由Servlet,Filter和Listener组成,其中监听器用来监听Servlet容器上下文。 监听器通常分三类:基于Servlet上下文的ServletContex监听,基于会话的HttpSession监听和基于请求的ServletRequest监听。   ServletContex监听器 ServletContex又叫application
  • 博弈AngularJS讲义(16) - 提供者 boyitech jsAngularJSapiAngularProvider
      Angular框架提供了强大的依赖注入机制,这一切都是有注入器(injector)完成. 注入器会自动实例化服务组件和符合Angular API规则的特殊对象,例如控制器,指令,过滤器动画等。   那注入器怎么知道如何去创建这些特殊的对象呢? Angular提供了5种方式让注入器创建对象,其中最基础的方式就是提供者(provider), 其余四种方式(Value, Fac
  • java-写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。 bylijinnan java
    public class CommonSubSequence { /** * 题目:写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。 * 写一个版本算法复杂度O(N^2)和一个O(N) 。 * * O(N^2):对于a中的每个字符,遍历b中的每个字符,如果相同,则拷贝到新字符串中。 * O(
  • sqlserver 2000 无法验证产品密钥 Chen.H sqlwindowsSQL ServerMicrosoft
    在 Service Pack 4 (SP 4), 是运行 Microsoft Windows Server 2003、 Microsoft Windows Storage Server 2003 或 Microsoft Windows 2000 服务器上您尝试安装 Microsoft SQL Server 2000 通过卷许可协议 (VLA) 媒体。 这样做, 收到以下错误信息CD KEY的 SQ
  • [新概念武器]气象战争 comsci
           气象战争的发动者必须是拥有发射深空航天器能力的国家或者组织....        原因如下:        地球上的气候变化和大气层中的云层涡旋场有密切的关系,而维持一个在大气层某个层次
  • oracle 中 rollup、cube、grouping 使用详解 daizj oraclegroupingrollupcube
    oracle 中 rollup、cube、grouping 使用详解 -- 使用oracle 样例表演示 转自namesliu -- 使用oracle 的样列库,演示 rollup, cube, grouping 的用法与使用场景    --- ROLLUP , 为了理解分组的成员数量,我增加了 分组的计数  COUNT(SAL)   
  • 技术资料汇总分享 Dead_knight 技术资料汇总 分享
    本人汇总的技术资料,分享出来,希望对大家有用。 http://pan.baidu.com/s/1jGr56uE 资料主要包含: Workflow->工作流相关理论、框架(OSWorkflow、JBPM、Activiti、fireflow...) Security->java安全相关资料(SSL、SSO、SpringSecurity、Shiro、JAAS...) Ser
  • 初一下学期难记忆单词背诵第一课 dcj3sjt126com englishword
    could 能够 minute 分钟 Tuesday 星期二 February 二月 eighteenth 第十八 listen 听 careful 小心的,仔细的 short 短的 heavy 重的 empty 空的 certainly 当然 carry 携带;搬运 tape 磁带 basket 蓝子 bottle 瓶 juice 汁,果汁 head 头;头部
  • 截取视图的图片, 然后分享出去 dcj3sjt126com OSObjective-C
    OS 7 has a new method that allows you to draw a view hierarchy into the current graphics context. This can be used to get an UIImage very fast. I implemented a category method on UIView to get the vi
  • MySql重置密码 fanxiaolong MySql重置密码
    方法一:  在my.ini的[mysqld]字段加入: skip-grant-tables 重启mysql服务,这时的mysql不需要密码即可登录数据库  然后进入mysql mysql>use mysql;  mysql>更新 user set password=password('新密码') WHERE User='root'; mysq
  • Ehcache(03)——Ehcache中储存缓存的方式 234390216 ehcacheMemoryStoreDiskStore存储驱除策略
    Ehcache中储存缓存的方式   目录 1     堆内存(MemoryStore) 1.1     指定可用内存 1.2     驱除策略 1.3     元素过期 2   &nbs
  • spring mvc中的@propertysource jackyrong spring mvc
      在spring mvc中,在配置文件中的东西,可以在java代码中通过注解进行读取了: @PropertySource  在spring 3.1中开始引入 比如有配置文件 config.properties mongodb.url=1.2.3.4 mongodb.db=hello 则代码中   @PropertySource(&
  • 重学单例模式 lanqiu17 单例Singleton模式
    最近在重新学习设计模式,感觉对模式理解更加深刻。觉得有必要记下来。 第一个学的就是单例模式,单例模式估计是最好理解的模式了。它的作用就是防止外部创建实例,保证只有一个实例。 单例模式的常用实现方式有两种,就人们熟知的饱汉式与饥汉式,具体就不多说了。这里说下其他的实现方式 静态内部类方式: package test.pattern.singleton.statics; publ
  • .NET开源核心运行时,且行且珍惜 netcome java.net开源
    背景 2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和核心
  • 使用oscahe缓存技术减少与数据库的频繁交互 Everyday都不同 Web高并发oscahe缓存
    此前一直不知道缓存的具体实现,只知道是把数据存储在内存中,以便下次直接从内存中读取。对于缓存的使用也没有概念,觉得缓存技术是一个比较”神秘陌生“的领域。但最近要用到缓存技术,发现还是很有必要一探究竟的。   缓存技术使用背景:一般来说,对于web项目,如果我们要什么数据直接jdbc查库好了,但是在遇到高并发的情形下,不可能每一次都是去查数据库,因为这样在高并发的情形下显得不太合理——
  • Spring+Mybatis 手动控制事务 toknowme mybatis
    @Override    public boolean testDelete(String jobCode) throws Exception {       boolean flag = false;  &nbs
  • 菜鸟级的android程序员面试时候需要掌握的知识点 xp9802 android
    熟悉Android开发架构和API调用 掌握APP适应不同型号手机屏幕开发技巧 熟悉Android下的数据存储  熟练Android Debug Bridge Tool 熟练Eclipse/ADT及相关工具  熟悉Android框架原理及Activity生命周期 熟练进行Android UI布局 熟练使用SQLite数据库; 熟悉Android下网络通信机制,S