elasticsearch拼音+ik分词,springdataelasticsearch拼音分词

double_yuan      2022-04-14     713

关键词:

elasticsearch 自定义分词器

安装拼音分词器、ik分词器

  拼音分词器: https://github.com/medcl/elasticsearch-analysis-pinyin/releases

  ik分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases

  下载源码需要使用maven打包

  下载构建好的压缩包解压后放直接在elasticsearch安装目录下 plugins文件夹下,可以重命名

 

 

1.在es中设置分词

创建索引,添加setting属性

PUT myindex
{
  "settings": {
    "index":{
      "analysis":{
        "analyzer":{
          "ik_pinyin_analyzer":{
            "type":"custom",
            "tokenizer":"ik_smart",
            "filter":"pinyin_filter"
          }
        },
        "filter":{
          "pinyin_filter":{
            "type":"pinyin",
            "keep_separate_first_letter" : false,                
       "keep_full_pinyin" : true,
       "keep_original" : false,
"limit_first_letter_length" : 10,
"lowercase" : true,
"remove_duplicated_term" : true } } } } } }

添加属性 设置mapping属性

PUT myindex/_mapping/users
{
  "properties": {
    "uname":{
      "type": "text",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "fields": {
        "my_pinyin":{
          "type": "text"
          , "analyzer": "ik_pinyin_analyzer",
          "search_analyzer": "ik_pinyin_analyzer"
        }
      }
    },
    "age":{
      "type": "integer"
    }
  }
}

2.spring data elasticsearch设置分词

创建实体类

@Mapping(mappingPath = "elasticsearch_mapping.json")//设置mapping
@Setting(settingPath = "elasticsearch_setting.json")//设置setting
@Document(indexName = "myindex",type = "users")
public class User {
@Id
private Integer id;
//
// @Field(type =FieldType.keyword ,analyzer = "pinyin_analyzer",searchAnalyzer = "pinyin_analyzer")//没有作用
private String name1;
@Field(type = FieldType.keyword)
private String userName;
@Field(type = FieldType.Nested)
private List<Product> products;

}
在resources下创建elasticsearch_mapping.json 文件
{
  "properties": {
    "uname": {
      "type": "text",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "fields": {
        "my_pinyin": {
          "type": "text",
          "analyzer": "ik_pinyin_analyzer",
          "search_analyzer": "ik_pinyin_analyzer"
        }
      }
    },
    "age": {
      "type": "integer"
    }
  }
}
在resources下创建elasticsearch_setting.json 文件

{
"index": {
"analysis": {
"analyzer": {
"ik_pinyin_analyzer": {
"type": "custom",
"tokenizer": "ik_smart",
"filter": "pinyin_filter"
}
},
"filter": {
"pinyin_filter": {
"type": "pinyin",
//true:支持首字母
"keep_first_letter":true,
//false:不支持首字母分隔
"keep_separate_first_letter": false,
//true:支持全拼
"keep_full_pinyin": true,
"keep_original": false,
//设置最大长度
"limit_first_letter_length": 10,
//小写非中文字母
"lowercase": true,
//重复的项将被删除
"remove_duplicated_term": true
}
}
}
}
}
 
  • ik_max_word:会将文本做最细粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、中华人民、中华、华人、人民共和国、人民、人、民、共和国、共和、和、国国、国歌」,会穷尽各种可能的组合;
  • ik_smart:会将文本做最粗粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、国歌」;

程序启动后分词并没有设置分词

实体创建后需要加上,创建的索引才可以分词

elasticsearchTemplate.putMapping(User.class);

 


















































如何在elasticsearch中安装中文分词器(ik)和拼音分词器?

  声明:我使用的Elasticsearch的版本是5.4.0,安装分词器前请先安装maven一:安装mavenhttps://github.com/apache/maven说明:安装maven需要java1.7+编译安装分词器时,可能会报错,报错信息如下:[ERROR]COMPILATIONERROR:[INFO]---------------------------... 查看详情

es中安装中文/拼音分词器(ik+pinyin)

...供整体思路和步骤):IK中文分词器:https://github.com/medcl/elasticsearch-analysis-ik拼音分词器:https://github.com/medcl/elasticsearch-analysis-pinyin(竟然都是同一个作者的杰作,还有mmseg和简繁转换的类库,依然默默watch)**settings配置****mapping配... 查看详情

elasticsearch连续剧之分词器(代码片段)

...下分词器的真实面目!二、默认分词器standardanalyzer:Elasticsearch默认分词器,根据空格和标点符号对英文进行分词,会进行单词的大小写转换。默认分词器是英文分词器,对中文的分词是一字一词。三、IK分词器IK分... 查看详情

elasticsearch安装中文分词器(代码片段)

发车   为什么要在elasticsearch中要使用ik这样的中文分词呢,那是因为es提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用。今天我们就尝试安装下IK分词。上... 查看详情

elasticsearch默认分词与ik分词

默认分词默认的分词,会把每个中文拆出来;比如查“中”“国”"中国"都可以匹配全匹配就查不到数据IK分词分很多词条ik安装https://blog.csdn.net/clj198606061111/article/details/112156902 查看详情

elasticsearch-ik分词器(代码片段)

ElasticSearch-ik分词器IK分词器安装使用下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases下载对应版本即可:安装:下载箭头中的压缩包就行了,下载之后解压到elasticsearch的plugins的一个文件夹ik(ik文件夹自己创建,可以随意... 查看详情

elasticsearch中文分词(代码片段)

...hobby","text":"听音乐"     中文分词:  IK分词器Elasticsearch插件地址:https://github.com/medcl/elasticsearch-analysis-ik  安装方法:将下载到的elasticsearch-analysis-ik-6.5.4.zip解压到elasticsearch/plugins/ik目录下即可。    unzipelastics... 查看详情

elasticsearch安装ik分词插件

一打开网页:https://github.com/medcl/elasticsearch-analysis-ik/releases这个是ik相关的包,找到你想下载的版本,下载对应的zip包二然后在安装目录的plugins中新建ik文件夹,然后将文件解压到当前文件夹,对应的ik文件夹如下图所示:  查看详情

elasticsearch之中文分词器插件es-ik

 前提什么是倒排索引?Elasticsearch之分词器的作用Elasticsearch之分词器的工作流程Elasticsearch之停用词Elasticsearch之中文分词器Elasticsearch之几个重要的分词器       elasticsearch官方默认的分词插件  1、el... 查看详情

elasticsearch实践:ik分词(代码片段)

环境:Elasticsearch6.2.4+Kibana6.2.4+ik6.2.4Elasticsearch默认也能对中文进行分词。我们先来看看自带的中文分词效果:curl-XGET"http://localhost:9200/_analyze"-H'Content-Type:application/json'-d'"analyzer&quo 查看详情

elasticsearch中文分词(ik)

ElasticSearch安装官网:https://www.elastic.co1.ElasticSearch安装1.1.下载安装公共密钥rpm--importhttps://artifacts.elastic.co/GPG-KEY-elasticsearch1.2.在 /etc/yum.repos.d/目录下建立 elasticsearch.repo文件vim/etc/yum 查看详情

elasticsearch安装ik分词器(代码片段)

文章目录安装IK分词器1.在线安装ik插件(较慢)2.离线安装ik插件(推荐)1)查看据卷目录2)解压缩分词器安装包3)上传到es容器的插件数据卷中4)重启容器5)测试:3扩展词词典4停用词词... 查看详情

elasticsearch安装ik分词器(代码片段)

文章目录安装IK分词器1.在线安装ik插件(较慢)2.离线安装ik插件(推荐)1)查看据卷目录2)解压缩分词器安装包3)上传到es容器的插件数据卷中4)重启容器5)测试:3扩展词词典4停用词词... 查看详情

elasticsearch实战(二十六)-ik中文分词器

        为什么要在elasticsearch中要使用ik这样的中文分词?因为ES提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用。一、安装   &... 查看详情

elasticsearch速学-ik中文分词器远程字典设置

...词的,我们可以丰富这个词库。 IK分词器(IKAnalysisforElasticsearch)给了我们一个基本的配置: https://github.com/medcl/elasti 查看详情

在elasticsearch中使用ik中文分词插件

...一个自带IK的版本,下载即用,https://github.com/xlb378917466/elasticsearch5.2.include_IK 添加了IK插件意味着你可以使用ik_smart(最粗粒度的拆分)和ik_max_word(最细粒度的拆分)两种analyzer。 你也可以从下面这个地址获取最新的IK源... 查看详情

dockerfile构建elasticsearch镜像安装ik中文分词器插件(代码片段)

DockerFile构建ElasticSearch镜像安装IK中文分词器插件为什么要安装IK中文分词器?ES提供的分词是英文分词,对中文做分词时会拆成单字而不是词语,非常不好,因此索引信息含中文时需要使用中文分词器插件。一、环境及文件准备... 查看详情

elasticsearch安装中文分词插件ik

Elasticsearch默认提供的分词器,会把每一个汉字分开,而不是我们想要的依据关键词来分词。比如:curl-XPOST"http://localhost:9200/userinfo/_analyze?analyzer=standard&pretty=true&text=我是中国人"我们会得到这种结果:{tokens:[{token:textstart_offs... 查看详情