QueryBuilder

中间件:ElasticSearch组件RestHighLevelClient用法详解

心不动则不痛 提交于 2021-01-25 10:09:34
本文源码: GitHub·点这里 || GitEE·点这里 一、基础API简介 1、RestHighLevelClient RestHighLevelClient的API作为ElasticSearch备受推荐的客户端组件,其封装系统操作ES的方法,包括索引结构管理,数据增删改查管理,常用查询方法,并且可以结合原生ES查询原生语法,功能十分强大。 在使用RestHighLevelClient的语法时,通常涉及上面几个方面,在掌握基础用法之上可以根据业务特点进行一些自定义封装,这样可以更优雅的解决业务需求。 2、核心依赖 使用RestHighLevelClient需要依赖 rest-high-level-client 包,和ES相关基础依赖。 <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> </dependency> <dependency> <groupId>org.elasticsearch.client<

SharePoint:如何在SharePoint 2013限制多个网站集的Search Result

删除回忆录丶 提交于 2021-01-01 04:43:11
今天在MSDN解答问题时发现,很多企业终端用户对Search的要求是比较严格的,SharePoint虽然是企业数据管理和团队协作的最佳平台,但在庞大的数据平台中,即便有提供Search Service也不会精准的检索到用户所需要的文档,会根据Service关联的所有的Web App下模糊查询后呈现很多相近的查询结果,这对终端用户而言也是很困扰的问题。 在SharePoint 2010, IT Admin可以通过配置Search Scope的功能中的Include或者Exclude Rule来满足用户需求,操作简单易用,但在SharePoint 2013,Search Service做了优化,Result Resouces替代了Search Scopes功能,IT Admin可以在Search Service Application、Site Collection、Site三个level创建Result Resource功能,虽然提供了Granular way的方式来定义result sources,但加大了维护的复杂度。 本篇文章,以在SSA level为例,介绍下如何配置Result Source以及如何显示Search Result,具体步骤如下所示: Result Source 操作步骤: IT Admin访问SharePoint Center Admin->Search

elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、S...

折月煮酒 提交于 2020-11-24 04:40:31
一、ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200    这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接方式是RESTful风格的,使用http的方式进行连接 3.2 Transport 连接 端口 9300 这种连接方式对应于架构图中的Transport这一层,这种客户端连接方式是直接连接ES的节点,使用TCP的方式进行连接 4. ES提供了多种编程语言客户端 官网可以了解详情: https://www.elastic.co/guide/en/elasticsearch/client/index.html 二、Java REST Client介绍 1. ES提供了两个JAVA REST client 版本 Java Low Level REST Client: 低级别的REST客户端,通过http与集群交互,用户需自己编组请求JSON串,及解析响应JSON串。 兼容所有ES版本 。 Java High Level REST Client: 高级别的REST客户端,基于低级别的REST客户端,增加了编组请求JSON串、解析响应JSON串等相关api。 使用的版本需要保持和ES服务端的版本一致,否则会有版本问题。 2. Java

SQL,NoSQL和NewSQL的区别

ぃ、小莉子 提交于 2020-11-01 18:19:45
 SQL(Structured Query Language):数据库,指关系型数据库。主要代表:SQL Server、Oracle、MySQL、PostgreSQL。   NoSQL(Not Only SQL):泛指非关系型数据库。主要代表:MongoDB、Redis、CouchDB。    NewSQL: 对各种新的可扩展/高性能数据库的简称。主要代表:Clustrix、GenieDB。 二:对比   SQL: 好处来源于它的统一性和易用性,缺点是面对大量的数据时,他的性能会随着数据库的增大而急剧下降。 NoSQL: 以放宽ACID原则为代价,NoSQL采取的是最终一致性原则,而不是像关系型数据库那样地严格遵守着ACID的原则,这意味着如果在特定时间段内没有特定数据项的更新,则最终对其所有的访问都将返回最后更新的值。 这就是这样的系统通常被描述为提供基本保证的原因(基本可用,软状态,最终一致性) — 而不是ACID。 NewSQL: NewSQL选择汲取了SQL和NewSQL的优点,希望将ACID和可扩展性以及高性能结合,但是目前而言,不适用于所有的场景。 三:Let's think   根据CAP原则, Consistency(一致性) Availability(可用性) Partition tolerance(分区容错)   这三点不能够同时做到,所以我们可以猜想

ES[7.6.x]学习笔记(十二)高亮 和 搜索建议

北慕城南 提交于 2020-10-31 06:47:31
ES当中大部分的内容都已经学习完了,今天呢算是对前面内容的查漏补缺,把ES中非常实用的功能整理一下,在以后的项目开发中,这些功能肯定是对你的项目加分的,我们来看看吧。 高亮 高亮在搜索功能中是十分重要的,我们希望搜索的内容在搜索结果中重点突出,让用户聚焦在搜索的内容上。我们看看在ES当中是怎么实现高亮的,我们还用之前的索引 ik_index ,前面的章节,我们搜索过 香蕉好吃 ,但是返回的结果中并没有高亮,那么想要在搜索结果中,对 香蕉好吃 高亮该怎么办呢?我们看看, POST /ik_index/_search { "query" : { "bool" : { "must" : { "match" : { "desc" : "香蕉好吃" } } } }, "highlight" : { "fields" : { "desc" : {} } } } 我们重点看一下请求体中的 highlight 部分,这部分就是对返回结果高亮的设置, fields 字段中,指定哪些字段需要高亮,我们指定了 desc 字段,执行一下,看看结果吧。 { "took" : 73 , "timed_out" : false , "_shards" : { "total" : 1 , "successful" : 1 , "skipped" : 0 , "failed" : 0 }, "hits" : {

3分钟短文:Laravel查询构造器,告别手写SQL的艰苦岁月

£可爱£侵袭症+ 提交于 2020-10-30 19:38:15
引言 鉴于上一章标题引起一些开发同学的巨大兴趣,本文我们接着此种行文方式继续我们的“Laravel宇宙”系列文章。 我们在前一些章节,相继使用迁移创建了数据库结构,使用seeder为数据库填充了假数据,现在我们要对数据进行操作了。 哪些操作?增删改查! 本文先不说模型,说说直接的查询构造器,说说怎么把数据筛选出来,这用的应该是最多的了。 代码时间 说起柔顺,你想起来什么?是撸代码,没错,就是它。 大家看看下面这个代码写法柔顺不柔顺: $users = DB :: select ( [ 'table' = > 'users' , 'where' = > [ 'type' = > 'donor' ] ] ) ; 我们说撸代码,是有一个从前到后,丝滑连贯的感受的,上面这段不柔顺,它在各个参数位置传入了各种结构的数据, 不仅看上去乱,写上去乱,连代码自己都觉得乱。 下面是laravel里用的最多的写法: $users = DB :: table ( 'users' ) - > where ( 'type' , 'donor' ) - > get ( ) ; 这些是不是顺多了,一气呵成,要的就是这个感觉。 为了演示查询构造器的功能用法,我们直接使用 DB 门面创建 QueryBuilder 对象。比如执行原生的语句: DB :: statement ( 'drop table users'

数据库查询构建控件集Active Query Builder

旧巷老猫 提交于 2020-08-19 22:07:34
Active Query Builder 是一款数据库查询构建控件集,用于 Borland Delphi 和 C++Builder 中,通过它,您可以为您的用户提供一个直接而直观的界面来创建复杂的包含公用体和子查询的 SQl 查询。它完全支持多种数据库,包括 Oracle, Microsoft SQL Server, MySQL, PostgreSQL, InterB数据库ase, Informix 和其他更多的 SQL dialects ,您只需通过设定一些属性或者添加几行代码便可以将该控件集整合在您的程序中。 · 增强的检索功能,支持参数扩展信息检索 · &nbs数据库p; 现在,您可以获取应用到您制定参数的表和域的名称,同样,您还可以获取此参数所预期得到的数据类型。所有这些属性通过参数类集( Parameters collection )提供 · 现在,所数据库有的示例工程中都包含了所涉及参数的相关扩展信息说明 · 新的 QueryStatistics.OutputColumns 属性可以用于访问查询的输出类。它将要求您制定查询的输出类信息的最大值 · &nb数据库sp; SQL 表达式和别名表达式 · 对象名称,对象别名和域的名称(只支持列基于单独的域的情况) · 数据库 更好的管理选择( SELECT )列表中的通配符的使用,现在通配符( * )默认添加在查询中

《ElasticSearch入门》一篇管够,持续更新

≡放荡痞女 提交于 2020-08-19 22:03:55
一、顾名思义: Elastic:灵活的;Search:搜索引擎 二、官方简介: Elasticsearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。 三、优势: 天然分片,天然集群,天然索引--->正如他的名字一样,查询速度快,是他最大的优势。 四、业务场景: 在大数据场景下,面对千万级数据,我们一般都会在mysql上进行分库分表。 比如我们根据公司名称查询公司详细信息,数据库已经被分成若干个,表分成若干个, 我们是不知道具体在哪个库,哪个表。分库分表后,每个表都有一个唯一标识id, 这个id可以解析出库表的后缀。那怎么根据名称获取这个id呢,有一种思路就是公司名称的md5, 然后解析到指定的索引库表,然后我们就可以查询到id,再根据id获取其他信息。 按照传统模式,我们需要从mysql查询两次,第一次从索引库查询id, 然后根据id获取其他信息。面对亿级数据,每过一次数据库,效率都要打折扣。 于是es携带其天生的全文高速检索优势正式亮相:有以下3种方案:   1、将索引库整合导入es,我们优先从es中进行精确或者模糊匹配,然后再去mysql查询具体数据。   2、将所有数据库整合导入es,直接从es查询。   3、每次先从es查询,es没有从mysql查询,然后更新到es。 大概分析下各自的优缺点。   1

Repository 返回 IQueryable?还是 IEnumerable?

筅森魡賤 提交于 2020-08-09 13:48:08
这是一个很有意思的问题,我们一步一步来探讨,首先需要明确两个概念(来自 MSDN): IQueryable:提供对未指定数据类型的特定数据源的查询进行计算的功能。 IEnumerable:公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。 IQueryable 继承自 IEnumerable,它们俩最大的区别是,IQueryable 是表达式树处理,可以延迟查询,而 IEnumerable 只能查询在本地内存中,Repository 的概念就不多说了,在“伪 DDD”设计中,你可以把它看作是数据访问层。 下面我们先实现 Repository 返回 IEnumerable: public interface IBookRepository { Book GetById(); IEnumerable<Book> GetAllBooks(); IEnumerable<Book> GetBy....(); void Add(Book book); void Delete(Book book); void SaveChanges(); } 上面是我们的一般接口设计,包含查询、增加、删除操作,你发现并没有修改,其实我们可以先通过 GetById 操作,然后取得 Book 对象,进行修改,最后执行 SaveChanges 就可以了,在持久化数据库的时候,会判断实体状态值的概念,最后进行应用改变

ElasticSearch搜索引擎在JavaWeb项目中的应用

拜拜、爱过 提交于 2020-08-08 16:28:08
近几篇ElasticSearch系列: 1、 阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2、 Linux系统中ElasticSearch搜索引擎安装配置Head插件 3、 ElasticSearch搜索引擎安装配置中文分词器IK插件 4、 ElasticSearch搜索引擎安装配置拼音插件pinyin 5、 ElasticSearch搜索引擎在JavaWeb项目中的应用 一、前言 前四篇简单介绍了ElasticSearch(以下简称ES)在阿里云服务器Linux系统上的部署配置等。本篇将简述一下ES在JavaWeb项目中的应用。本项目前端框架是Vue.js,前后端数据交互采用是常用的SSM框架,项目管理工具为Maven,ES为6.3.2版本。 二、正文 1、ES在Maven中添加相应依赖,如下所示: 1 < dependency > 2 < groupId > org.elasticsearch </ groupId > 3 < artifactId > elasticsearch </ artifactId > 4 < version > 6.3.2 </ version > 5 </ dependency > 6 < dependency > 7 < groupId > org.elasticsearch.client </ groupId > 8