elasticsearch 使用同义词

elasticsearch 使用同义词

使用环境

安装插件

下载对应的elasticsearch-analysis-dynamic-synonym-5.1.1.zip, 解压到本地的elasticsearch/plugins目录下, 重新启动es

第一种方式本地文件

说明:

  • 对于本地文件:主要通过文件的修改时间戳(Modify time)来判断是否要重新加载

  • 在elasticsearch/config目录下,建立analysis目录, 并在analysis目录下放入synonym.txt, 在文件首行加入下面一行同义词,来进行测试

    西红柿, 番茄, 圣女

es设置索引和自定义解析器

PUT /megacorp
{
  "mappings": {
    "employee": {
      "properties": {
        "name":{
          "type": "text",
          "analyzer": "ik-index",  //指定索引时候用的解析器
          "search_analyzer": "ik-smart" //指定搜索时候用的解析器
        }
      }
    }
  }
  ,
  "settings": {
    "analysis": {
      "filter": {
        "local_synonym" : {
            "type" : "dynamic_synonym",
            "synonyms_path" : "analysis/synonym.txt"
        }
      },
      "analyzer": {
        "ik-index": {
          "type": "custom",
          "tokenizer": "ik_max_word",
          "filter": [
              "local_synonym"   //对同义词进行了过滤
           ]
        },
        "ik-smart": {
          "type": "custom",
          "tokenizer": "ik_smart",
          "filter": [
              "local_synonym"
           ]
        }
      }
    }
  }
}

设置好后,可以用以下命令查看,同义词是否配置成功

GET /megacorp/_analyze
{
  "analyzer": "ik-index",
  "text": "西红柿"
}

正确分词结果如下:

{
  "tokens": [
    {
      "token": "西红柿",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "番茄",
      "start_offset": 0,
      "end_offset": 3,
      "type": "SYNONYM",
      "position": 0
    },
    {
      "token": "圣女",
      "start_offset": 0,
      "end_offset": 3,
      "type": "SYNONYM",
      "position": 0
    }
  ]
}

插入2条数据:

PUT /megacorp/employee/1
{
    "name" : "圣女果"
}

PUT /megacorp/employee/2
{
    "name" : "番茄"
}

搜索西红柿, 会搜索出番茄和圣女果的记录:

GET /megacorp/employee/_search
{
    "query":{
      "match": {
        "name": "西红柿"
      }
    }
}

第二种方式远程接口

说明:

  • 这个http请求需要返回两个头部,一个是 Last-Modified,一个是 ETag,只要有一个发生变化,该插件就会去获取新的同义词来更新相应的同义词。

时间: 2024-10-20 23:04:17

elasticsearch 使用同义词的相关文章

Elasticsearch 配置同义词

配置近义词 近义词组件已经是elasticsearch自带的了,所以不需要额外安装插件,但是想要让近义词和IK一起使用,就需要配置自己的分析器了. 首先创建近义词文档 在config目录下 mkdir analysis vim analysis/synonym.txt 编辑: i-pod, i pod, i pad => ipod, sea biscuit, sea biscit => seabiscuit, 中文,汉语,汉字 这里可以看到近义词的写法有两种: a,b => c a,b,

[大数据]-Elasticsearch5.3.1 IK分词,同义词/联想搜索设置

--题外话:最近发现了一些问题,一些高搜索量的东西相当一部分没有价值.发现大部分是一些问题的错误日志.而我是个比较爱贴图的.搜索引擎的检索会将我们的博文文本分词.所以图片内容一般是检索不到的,也就是说同样的问题最好是帖错误代码,日志,虽然图片很直观,但是并不利与传播.希望大家能够优化一部分博文的内容,这样有价值的东西传播量可能会更高. 本文主要是记录Elasticsearch5.3.1 IK分词,同义词/联想搜索设置,本来是要写fscrawler的多种格式(html,pdf,word...)数据

使用 Elasticsearch ik分词实现同义词搜索(转)

1.首先需要安装好Elasticsearch 和elasticsearch-analysis-ik分词器 2.配置ik同义词 Elasticsearch 自带一个名为 synonym 的同义词 filter.为了能让 IK 和 synonym 同时工作,我们需要定义新的 analyzer,用 IK 做 tokenizer,synonym 做 filter.听上去很复杂,实际上要做的只是加一段配置. 打开 /config/elasticsearch.yml 文件,加入以下配置: [html] vi

elasticsearch集群&&IK分词器&&同义词

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.3/elasticsearch-2.3.3.tar.gz 集群安装: 三个节点:master,slave1,slvae2 vi elasticsearch.yml cluster.name: my-application node.name: node-3(节点独有的名称,注意唯一性

elasticsearch 同义词配置

在elasticsearch-2.3.1/config目录下面,存放synonyms.txt curl -XPOST 'http://localhost:9200/sy' -d '{ "analysis": { "analyzer":{ "mysynonym":{ "type": "custom", "tokenizer":"ik_smart", "filt

[Elasticsearch] 控制相关度 (二) - Lucene中的PSF(Practical Scoring Function)与查询期间提升

本章翻译自Elasticsearch官方指南的Controlling Relevance一章. Lucene中的Practical Scoring Function 对于多词条查询(Multiterm Queries),Lucene使用的是布尔模型(Boolean Model),TF/IDF以及向量空间模型(Vector Space Model)来将它们结合在一起,用来收集匹配的文档和对它们进行分值计算. 像下面这样的多词条查询: GET /my_index/doc/_search { "que

Solr vs. Elasticsearch谁是开源搜索引擎王者

当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求.随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战.本文,我们将比较业界两个最流行的开源搜索引擎,Solr和ElasticSearch.两者都建立在Apache Lucene开源平台之上,它们的主要功能非常相似,但是在部署的易用性,可扩展性和其他功能方面也存在巨大差异. 关于Apache Solr Apache Solr基于业界大名鼎鼎的java开源搜索引擎L

浅入深出ElasticSearch构建高性能搜索架构

浅入深出ElasticSearch构建高性能搜索架构  课程学习地址:http://www.xuetuwuyou.com/course/161 课程出自学途无忧网:http://www.xuetuwuyou.com 一.课程用到的软件 ElasticSearch5.0.0 Spring Tool Suite 3.8.2.RELEASE Maven3.0.5 Spring4 Netty4 Hadoop2.7.1 Kibana5.0 JDK1.8.0_111 二.课程目标 1.快速学习Elastic

Elasticsearch工作原理

一.关于搜索引擎 各位知道,搜索程序一般由索引链及搜索组件组成. 索引链功能的实现需要按照几个独立的步骤依次完成:检索原始内容.根据原始内容来创建对应的文档.对创建的文档进行索引. 搜索组件用于接收用户的查询请求并返回相应结果,一般由用户接口.构建可编程查询语句的方法.查询语句执行引擎及结果展示组件组成. 著名的开源程序Lucene是为索引组件,它提供了搜索程序的核心索引和搜索模块,例如图中的"Index"及下面的部分:而ElasticSearch则更像一款搜索组件,它利用Lucene