ELK之elastic 设置

elastic是分布式搜索和分析引擎。可以极大提高搜索效率,官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的索引数据...

elastic 之所以日此快(甚至比mysql主键查询还要快)是因为使用了倒排索引,简单说是由属性值来确定记录的位置。Elasticsearch 还做了许多针对性的优化,当我们对两个字段进行检索时,就可以利用 Bitmap(有值为1,无值为0)进行优化and查询直接通过位与计算便可得出结果。

Name Posting List
name=zhangsan [1,3,5]
age=18 [1,2,4,5]
[1, 3, 5] ⇒ 10101 
 
[1, 2, 4, 5] ⇒ 11011 
  • 这样两个二进制数组求与便可得出结果:
10001 ⇒ [1, 5] 

新建字段

  • 不指定字段类型默认text
#POST  rpt_nginx_log/_mapping
{
	"properties": {
		"field_name": {
			"type": "keyword"
		}
	}
}



#nested新建字段
#PUT   drug_patent_public/_doc/_mapping?include_type_name=true
{
    "properties": {
        "patent_list": {
            "type": "nested",
            "properties": {
                "patent_id": {
                    "type": "integer"
                },
                "name": {
                    "type": "keyword",
                    "norms": false,
                    "doc_values": false
                }
            }
        }
    }
}

优化

#PUT reviewcase_fulltmap/_settings 
{
  "index.merge.scheduler.max_merge_count": 100
}

其他

# 与query 同级 获取真实总条数
"track_total_hits": true,

#分词查询
#POST _analyze
{
	"text": "中华人民共和国"
}

{
	"analyzer": "ik_smart",
	"text": "中华人民共和国"
}
Licensed under 京ICP备17003353号-3