<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[feifeichongtian的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/feifeichongtian</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; feifeichongtian]]></copyright><item><title><![CDATA[elasticsearch 磁盘优化-index]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/121018452</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/121018452</guid><author>feifeichongtian</author><pubDate>Thu, 28 Oct 2021 17:03:29 +0800</pubDate><description><![CDATA[### index参数 的作用

&gt; + 当我们不需要一些字段参数搜索和过滤时可以配置index来减轻我们的磁盘空间的消耗。

&gt; + index 的默认值是true，是能够被索引和过滤的。

&gt; + index = false 配置那些不需要搜索和过滤，只需要存储展示的字段情况

#

举个栗子：

&gt; 创建索引

```json

PUT whl_test

{

"mappings": {

"properties": {

"age": {

"type": "integer]]></description><category></category></item><item><title><![CDATA[关于搜索elasticsearch的数据条数大于10000的坑 max_result_window的解决方案]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/119172847</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/119172847</guid><author>feifeichongtian</author><pubDate>Wed, 28 Jul 2021 11:10:43 +0800</pubDate><description><![CDATA[关于这个问题我主要从5.6.x版本和7.10.x版本分析：

5.6.x版本：只需要一步即可

{
    "settings": {
      "index": {     
        "number_of_shards": "1",
        "max_result_window": "1000000",
        "analysis": {
          "analyzer": {
            "keep_none_chinese_in_joined_full_p]]></description><category></category></item><item><title><![CDATA[Elasticsearch 大小写敏感问题（raw/keyword 对 wildcard 的支持）]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/118552159</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/118552159</guid><author>feifeichongtian</author><pubDate>Wed, 07 Jul 2021 17:00:00 +0800</pubDate><description><![CDATA[# 问题背景

_elasticsearch 的 keyword/raw 是没有对字段值的逐字存储的，所以对英文字母大小写敏感。当我们使用wildcard 做模糊查询时就会遇到查询结果集不全或者查询不到结果集_

# 解决方案

_我们需要在索引文档的时候对raw/keyword做下特殊里，下面是具体实现步骤_

+ 在setting中设置分析器

```

PUT /test_raw

{

"settings": {

"analysis": {

"filter": {

"my_synonym": ]]></description><category></category></item><item><title><![CDATA[Elasticsearch 缓存汇总]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/115632116</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/115632116</guid><author>feifeichongtian</author><pubDate>Wed, 28 Apr 2021 15:16:07 +0800</pubDate><description><![CDATA[前言

Elasticsearch 中有多种查询缓存，当一个查询请求执行后，他可能会被缓存下来，但是哪些查询会被缓存，哪些不会缓存，缓存了什么内容，什么时候失效，这些总是让人迷惑。现在，我们来把他搞清楚。

总共涉及的缓存有

Shard Request Cache
	Node Query Cache (Filter Cache)
	其他缓存
Shard Request Cache

Shard Request Cache 简称 Request Cache，他是分片级别的查询缓存，每个分片有自己的缓存。该缓]]></description><category></category></item><item><title><![CDATA[git 查看非当前分支提交log]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/112035778</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/112035778</guid><author>feifeichongtian</author><pubDate>Thu, 31 Dec 2020 17:28:46 +0800</pubDate><description><![CDATA[命令格式 ：git log $分支名称/tag名称 -n4


xuenlai:document tezignuser$ git log content-hub-1.1.0 -n4
commit cceaed4abeac63793ad51dd592121769ec0cf287 (origin/content-hub-1.1.0, content-hub-1.1.0)
Author: weihonglai &lt;weihonglai@tezign.com&gt;
Date:   Thu Dec 31 17:]]></description><category></category></item><item><title><![CDATA[elasticSearch 中的查询关键词]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/109274155</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/109274155</guid><author>feifeichongtian</author><pubDate>Sun, 25 Oct 2020 15:45:33 +0800</pubDate><description><![CDATA[match_all


match_all 查询简单的匹配所有文档。在没有指定查询方式时，它是默认的查询：

{ "match_all": {}}
。

match


如果你在一个全文字段上使用 match 查询，在执行查询前，它将用正确的分析器去分析查询字符串：

{ "match": { "title": "中国人" }}

multi_match


multi_match 查询可以在多个字段上执行相同的 match 查询：

{
    "multi_match": {
        "quer]]></description><category></category></item><item><title><![CDATA[git 命令总结]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/107984972</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/107984972</guid><author>feifeichongtian</author><pubDate>Mon, 24 Aug 2020 10:57:13 +0800</pubDate><description><![CDATA[# clone 分支
git clone url

# status 查看状态
git status

# add 添加
git add .

# 删除文件
git rm [file1] [file2] ...

# 停止追踪指定文件，但该文件会保留在工作区
git rm --cached [file]

# 改名文件，并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]

# 列出所有本地分支
git branch

# 列出所有远程分支
git br.]]></description><category></category></item><item><title><![CDATA[antd modal的onOk提交form表单]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/108059212</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/108059212</guid><author>feifeichongtian</author><pubDate>Mon, 17 Aug 2020 16:48:32 +0800</pubDate><description><![CDATA[import React, { Component } from 'react'
import { Modal, Form, Input, Button } from 'antd'
import FormModal from './SharedForm'

class SharedFormModal extends Component {
    state = { visible: true, }
    showModelHandler = (e) =&gt; {
        if (e) e.s.]]></description><category></category></item><item><title><![CDATA[布隆过滤器-Java实现版]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/107022280</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/107022280</guid><author>feifeichongtian</author><pubDate>Mon, 29 Jun 2020 16:12:50 +0800</pubDate><description><![CDATA[guava实现了布隆过滤器我们直接使用即可：


&lt;dependency&gt;
     &lt;groupId&gt;com.google.guava&lt;/groupId&gt;
     &lt;artifactId&gt;guava&lt;/artifactId&gt;
     &lt;version&gt;版本自取&lt;/version&gt;
&lt;/dependency&gt;

然后直接用：


import com.google.common.hash.BloomFilte]]></description><category></category></item><item><title><![CDATA[mysql innoDB 的MVCC工作原理]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/106331582</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/106331582</guid><author>feifeichongtian</author><pubDate>Mon, 25 May 2020 13:40:10 +0800</pubDate><description><![CDATA[mysql为每行数据添加了两个隐藏的字段，一个为保存创建版本号，一个保存删除版本号，版本号根据时间是递增的。
那么我们看下mysql在REPEATABLE READ隔离级别下，MVCC是如何操作的；
我们模拟一张表：
create table tbl(
  create_no int,
  delete_no int
);
假设事物的版本号 no = 20200525001;
insert 操作：创建版本号 = 当前事物版本号；
  insert into tbl (icreate_no,del...]]></description><category></category></item><item><title><![CDATA[适配器模式]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/105487265</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/105487265</guid><author>feifeichongtian</author><pubDate>Mon, 13 Apr 2020 13:58:45 +0800</pubDate><description><![CDATA[适配器模式：当前接口不满足用户想要的结果并且又不想改动现有的接口时，适配器模式就可以有用武之地了。

代码：

1.业务接口


public interface Adaptee {
    /**
     * 交强险
     */
    public void compulsory();
}


2.接口实现


/**
 * adaptee
 */
public class Adapte...]]></description><category></category></item><item><title><![CDATA[java8 stream 常规操作]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/105251507</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/105251507</guid><author>feifeichongtian</author><pubDate>Wed, 01 Apr 2020 17:48:25 +0800</pubDate><description><![CDATA[去入职新公司看到代码中有大量的stream操作，去网上看了一些博客学习做了一些笔记


import com.google.common.collect.Lists;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Demo {
  ...]]></description><category></category></item><item><title><![CDATA[elasticsearch 创建静态映射索引]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/97394686</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/97394686</guid><author>feifeichongtian</author><pubDate>Fri, 26 Jul 2019 16:33:39 +0800</pubDate><description><![CDATA[所谓静态映射就是像mysql一样在建表的时候对各个字段的属性进行设置：


put books
{
	"mappings":{
		"it":{
			"dynamic":"strict",
			"properties":{
				"title":{
					"type":"text"
				},
				"process":{
					"type":"date"
				}
			}
...]]></description><category></category></item><item><title><![CDATA[elasticsearch 获取文档操作]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/97376399</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/97376399</guid><author>feifeichongtian</author><pubDate>Fri, 26 Jul 2019 11:46:51 +0800</pubDate><description><![CDATA[获取单个id文档：


get blog/type_blog/1
响应信息：
{
"_index":"blog",
"_type":"type_blog",
"_id":"1",
"found":true,
"_source":{
    "id":1,
    "name":"zhangsan",
    ......
}
}

found:表示是否查询到数据
source:返回的数据

获取多...]]></description><category></category></item><item><title><![CDATA[elasticsearch 笔记]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/97259745</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/97259745</guid><author>feifeichongtian</author><pubDate>Thu, 25 Jul 2019 14:51:37 +0800</pubDate><description><![CDATA[1，创建索引：


put blog
{
"settings":{
"number_of_shards":3,
"number_of_replicas":0
}
}

返回值为：
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "blog"
}

注：

"number_of_shards":分片数
"number_of...]]></description><category></category></item><item><title><![CDATA[elasticsearch 复制索引]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/97260755</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/97260755</guid><author>feifeichongtian</author><pubDate>Thu, 25 Jul 2019 14:40:36 +0800</pubDate><description><![CDATA[复制索引：


post _reindex
{
  "source": {
    "index": "i_alarm_count"
  },
  "dest": {
    "index": "blog"
  }
}

返回值：

{
"took": 19,
"timed_out": false,
"total": 9,
"updated": 9,
"created": 0,
"deleted"...]]></description><category></category></item><item><title><![CDATA[java 创建高可用 的elastic 连接池]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/96477558</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/96477558</guid><author>feifeichongtian</author><pubDate>Fri, 19 Jul 2019 11:38:44 +0800</pubDate><description><![CDATA[第一步创建工厂类：


package com.whl.espool;

import org.apache.commons.pool2.PooledObject;
import org.apache.commons.pool2.PooledObjectFactory;
import org.apache.commons.pool2.impl.DefaultPooledObject;
import...]]></description><category></category></item><item><title><![CDATA[zookeeper原理及应用]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/93709413</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/93709413</guid><author>feifeichongtian</author><pubDate>Wed, 26 Jun 2019 08:59:29 +0800</pubDate><description><![CDATA[1.ZooKeeper是什么？
ZooKeeper是一个分布式的，开放源码的分布式应用程序协调服务，是Google的Chubby一个开源的实现，它是集群的管理者，监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终，将简单易用的接口和性能高效、功能稳定的系统提供给用户
2.ZooKeeper提供了什么？
1)文件系统
2)通知机制
3.Zookeeper文件系统
每个子目录项如 N...]]></description><category></category></item><item><title><![CDATA[centos ssh 免密设置]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/90272691</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/90272691</guid><author>feifeichongtian</author><pubDate>Thu, 16 May 2019 22:24:21 +0800</pubDate><description><![CDATA[1，生产密钥


[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (em...]]></description><category></category></item><item><title><![CDATA[centos 7 安装docker]]></title><link>https://blog.youkuaiyun.com/feifeichongtian/article/details/90272069</link><guid>https://blog.youkuaiyun.com/feifeichongtian/article/details/90272069</guid><author>feifeichongtian</author><pubDate>Thu, 16 May 2019 21:16:32 +0800</pubDate><description><![CDATA[由于Docker 要求 centos 系统的内核版本高于 3.10 ，首先查看centos 的内核版本


[root@localhost ~]# uname -r
3.10.0-514.el7.x86_64
[root@localhost ~]#

安装需要的软件：


[root@localhost ~]# yum install -y yum-utils device-mapper-pers...]]></description><category></category></item></channel></rss>