随笔分类 -  Solr+Elasticsearch

摘要:一.倒排索引组成结构以及其索引可变原因 倒排索引,是适合用于进行搜索的 1.倒排索引的结构 (1)包含这个关键词的document list(2)包含这个关键词的所有document的数量:IDF(inverse document frequency)(3)这个关键词在每个document中出现的次 阅读全文
posted @ 2019-08-02 11:24 Transkai 阅读(443) 评论(0) 推荐(0)
摘要:一.如何将一个field索引两次来解决字符串排序问题 如果对一个string field进行排序,结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了 通常解决方案是,将一个string field建立两次索引,一个分词,用来进行搜索;一个不分词,用来进行排序 PUT /website 阅读全文
posted @ 2019-08-01 21:31 Transkai 阅读(427) 评论(0) 推荐(0)
摘要:一. search api的基础语法 1、search语法 GET /search{} GET /index1,index2/type1,type2/search{} GET /_search{ "from": 0, "size": 10} 2、http协议中get是否可以带上request bod 阅读全文
posted @ 2019-07-31 20:57 Transkai 阅读(346) 评论(0) 推荐(0)
摘要:一.初识mapping (1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping(2)mapping中就自动定义了每个field的数据类型(3)不同的数据类型(比如说text和date),可能有的是exact value,有的是full text(4)exact v 阅读全文
posted @ 2019-07-31 16:14 Transkai 阅读(522) 评论(0) 推荐(0)
摘要:一.search timeout机制 对于一次search GET /_search { "took": 6, "timed_out": false, "_shards": { "total": 6, "successful": 6, "failed": 0 }, "hits": { "total" 阅读全文
posted @ 2019-07-31 15:01 Transkai 阅读(417) 评论(0) 推荐(0)
摘要:一.document数据路由原理 (1)document路由到shard上是什么意思? (2)路由算法:shard = hash(routing) % number_of_primary_shards 举个例子,一个index有3个primary shard,P0,P1,P2 每次增删改查一个doc 阅读全文
posted @ 2019-07-30 11:00 Transkai 阅读(498) 评论(0) 推荐(0)
摘要:1.图解剖析Elasticsearch并发冲突问题 2.图解剖析悲观锁与乐观锁两种并发控制方案 3、图解Elasticsearch内部如何基于_version进行乐观锁并发控制 (1)_version元数据 PUT /test_index/test_type/6{ "test_field": "te 阅读全文
posted @ 2019-07-26 11:21 Transkai 阅读(491) 评论(0) 推荐(0)
摘要:1、图解横向扩容过程,如何超出扩容极限,以及如何提升容错性 (1)primary&replica自动负载均衡,6个shard,3 primary,3 replica(2)每个node有更少的shard,IO/CPU/Memory资源给每个shard分配更多,每个shard性能更好(3)扩容的极限,6 阅读全文
posted @ 2019-06-27 14:27 Transkai 阅读(564) 评论(0) 推荐(0)
摘要:目录 1、Elasticsearch对复杂分布式机制的透明隐藏特性2、Elasticsearch的垂直扩容与水平扩容3、增减或减少节点时的数据rebalance4、master节点5、节点对等的分布式架构 6、shard&replica机制再次梳理 7、单node环境下创建index是什么样子的 1 阅读全文
posted @ 2019-06-26 15:40 Transkai 阅读(823) 评论(0) 推荐(1)
摘要:第一个分析需求:计算每个tag下的商品数量 GET /ecommerce/product/_search{ "aggs": { "group_by_tags": { "terms": { "field": "tags" } } }} 将文本field的fielddata属性设置为true PUT / 阅读全文
posted @ 2019-06-26 11:19 Transkai 阅读(706) 评论(0) 推荐(0)
摘要:1、query string search2、query DSL3、query filter4、full-text search5、phrase search6、highlight search 1、query string search 搜索全部商品:GET /ecommerce/product/ 阅读全文
posted @ 2019-06-26 11:16 Transkai 阅读(396) 评论(0) 推荐(0)
摘要:5 新建文档(源数据是手写的 json 串) 6 新建文档(源数据是以 map 方式添加的键值对) 7 新建文档(源数据是通过 es 构建器构建的数据) 8 搜索文档数据(单个索引) 9 搜索文档数据(多个索引) 10 更新文档数据(update) 11 更新文档数据(upsert) 12 删除文档 阅读全文
posted @ 2019-06-19 15:57 Transkai 阅读(1134) 评论(0) 推荐(0)
摘要:如下代码: 运行报错: NoNodeAvailableException 查看日志如下: java.lang.IllegalStateException: Received message from unsupported version: [5.2.2] minimal compatible ve 阅读全文
posted @ 2019-06-19 11:32 Transkai 阅读(874) 评论(0) 推荐(0)
摘要:使用ElasticSearch API 实现CRUD 添加索引: 指定分片和副本: PUT /lib/ { "settings":{ "index":{ "number_of_shards": 5, "number_of_replicas": 1 } }} 不指定分片和副本: PUT lib 查看索 阅读全文
posted @ 2019-06-18 16:30 Transkai 阅读(1088) 评论(0) 推荐(0)
摘要:CentOS6.5下安装ElasticSearch6.2.4(1)配置JDK环境 配置环境变量 export JAVA_HOME="/opt/jdk1.8.0_144" export PATH="$JAVA_HOME/bin:$PATH" export CLASSPATH=".:$JAVA_HOME 阅读全文
posted @ 2019-06-18 11:31 Transkai 阅读(746) 评论(0) 推荐(0)
摘要:1、lucene和elasticsearch的前世今生 lucene,最先进、功能最强大的搜索库,直接基于lucene开发,非常复杂,api复杂(实现一些简单的功能,写大量的java代码),需要深入理解原理(各种索引结构) elasticsearch,基于lucene,隐藏复杂性,提供简单易用的re 阅读全文
posted @ 2019-06-18 09:13 Transkai 阅读(1685) 评论(0) 推荐(0)
摘要:以下为solr4的java API操作 还有HttpSolrServer类,而solr7已经是没有的了,换成Solrclient 以下为solrj4与solrj7操作solrcloud的比较 // zkHost:zookeeper的地址列表 //String zkHost = "hadoop-001 阅读全文
posted @ 2019-06-13 20:12 Transkai 阅读(793) 评论(0) 推荐(0)
摘要:上一篇介绍了单机版的搭建,现在来介绍集群版的搭建 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并 阅读全文
posted @ 2019-06-13 19:49 Transkai 阅读(547) 评论(0) 推荐(0)
摘要:部署配置单机版solr 1.把solr-7.2.0/server/solr-webapp里面的webapp拷贝到tomcat 的webapps下,重命名为solr cp -r solr-7.2.1/server/solr-webapp/webapp/ /data/soft/tomcat/webapp 阅读全文
posted @ 2019-06-13 19:03 Transkai 阅读(358) 评论(0) 推荐(0)