Posts Elasticsearch 中文搜索优化
Post
Cancel

Elasticsearch 中文搜索优化

安装步骤

IK

打开链接:https://github.com/medcl/elasticsearch-analysis-ik/releases 选择下载v1.10.2 »> elasticsearch-analysis-ik-1.10.2.zip 在打开es安装目录的plugins cd plugins unzip elasticsearch-analysis-ik-1.10.2.zip mv elasticsearch-analysis-ik-1.10.2 zk

pinyin:

下载:https://github.com/medcl/elasticsearch-analysis-pinyin/tree/v1.8.2

解压到es的plugins目录

需要编译 maven install

====================================== 插件安装完成后执行以下代码

注意:localhost改为es主机IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
curl -XPUT "http://localhost:9200/yyyy" -H 'Content-Type: application/json' -d'
{
  "settings": {
   "analysis": {
     "analyzer": {
       "default": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ],
          "filter": [
            "pinyin_filter",
            "lowercase",
            "stop",
            "ngram_1_20"
          ]
       },
       "default_search": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ]
      }
     },
     "filter": {
       "ngram_1_20": {
         "type": "ngram",
         "min_gram": 1,
         "max_gram": 20,
         "token_chars": [
           "letter",
           "digit"
          ]
       },
       "pinyin_filter": {
         "type": "pinyin",
         "keep_original": true,
         "keep_joined_full_pinyin": true
       }
     }
   }
  }
}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
curl -XPUT "http://localhost:9200/ut.event" -H 'Content-Type: application/json' -d'
{
  "settings": {
   "analysis": {
     "analyzer": {
       "default": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ],
          "filter": [
            "pinyin_filter",
            "lowercase",
            "stop",
            "ngram_1_20"
          ]
       },
       "default_search": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ]
      }
     },
     "filter": {
       "ngram_1_20": {
         "type": "ngram",
         "min_gram": 1,
         "max_gram": 20,
         "token_chars": [
           "letter",
           "digit"
          ]
       },
       "pinyin_filter": {
         "type": "pinyin",
         "keep_original": true,
         "keep_joined_full_pinyin": true
       }
     }
   }
  }
}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
curl -XPUT "http://localhost:9200/ut.feed" -H 'Content-Type: application/json' -d'
{
  "settings": {
   "analysis": {
     "analyzer": {
       "default": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ],
          "filter": [
            "pinyin_filter",
            "lowercase",
            "stop",
            "ngram_1_20"
          ]
       },
       "default_search": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ]
      }
     },
     "filter": {
       "ngram_1_20": {
         "type": "ngram",
         "min_gram": 1,
         "max_gram": 20,
         "token_chars": [
           "letter",
           "digit"
          ]
       },
       "pinyin_filter": {
         "type": "pinyin",
         "keep_original": true,
         "keep_joined_full_pinyin": true
       }
     }
   }
  }
}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
curl -XPUT "http://localhost:9200/ut.member" -H 'Content-Type: application/json' -d'
{
  "settings": {
   "analysis": {
     "analyzer": {
       "default": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ],
          "filter": [
            "pinyin_filter",
            "lowercase",
            "stop",
            "ngram_1_20"
          ]
       },
       "default_search": {
         "type": "custom",
         "tokenizer": "ik_smart",
         "char_filter": [
            "html_strip"
          ]
      }
     },
     "filter": {
       "ngram_1_20": {
         "type": "ngram",
         "min_gram": 1,
         "max_gram": 20,
         "token_chars": [
           "letter",
           "digit"
          ]
       },
       "pinyin_filter": {
         "type": "pinyin",
         "keep_original": true,
         "keep_joined_full_pinyin": true
       }
     }
   }
  }
}'

重建索引:调用rebuildIndex

http://localhost:8080/nakedhub/api/search/

使用 Docker 安装

Master

1
docker run -d --name es-master -p 9200:9200 -p 9300:9300 registry.cn-hangzhou.aliyuncs.com/caryyu/elasticsearch:2.4.5-alpine-1 elasticsearch "-Des.cluster.name=escluster" "-Des.node.master=true" "-Des.node.data=false"

Data1

1
docker run -d --name es-data1 --link es-master:es-master -v /volume1/docker/es-data1:/data:rw  registry.cn-hangzhou.aliyuncs.com/caryyu/elasticsearch:2.4.5-alpine-1 elasticsearch "-Des.cluster.name=escluster" "-Des.node.ingest=false" "-Des.node.master=false" "-Des.discovery.zen.ping.unicast.hosts=es-master" "-Des.path.data=/data"

Data2

1
docker run -d --name es-data2 --link es-master:es-master -v /volume1/docker/es-data2:/data registry.cn-hangzhou.aliyuncs.com/caryyu/elasticsearch:2.4.5-alpine-1 elasticsearch "-Des.cluster.name=escluster" "-Des.node.ingest=false" "-Des.node.master=false" "-Des.discovery.zen.ping.unicast.hosts=es-master" "-Des.path.data=/data"

ES_JAVA_OPTS=”-Xms1024m -Xmx1024m”

This post is licensed under CC BY 4.0

尝试 gitlab ci&cd 持续集成(java)

基于 Docker 虚拟化技术快速搭建 Otter 测试环境

Comments powered by Disqus.