第一种:
参考地址:http://dev.paperlesspost.com/setting-up-elasticsearch-synonyms/27
1、Add a synonyms file.
2、Create the index with setting and mappings to support synonyms.
Creating a synonyms file
config/ynonyms.txt

# synonyms.txt
sea cow => manatee
cat, feline, lolcat

Setting up index settings and mappings

POST http://localhost:9200/my_index/
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"synonym": {
"tokenizer": "whitespace",
"filter": ["synonym"]
}
},
"filter": {
"synonym": {
"type": "synonym",
"synonyms_path": "synonyms.txt",
"ignore_case": true
}
}
}
}
},
"mappings": {
"animal": {
"properties": {
"name": {
"type": "String",
"analyzer": "synonym"
},
"type": {
"type": "String",
"analyzer": "synonym"
}
}
}
}
}

Bonus: Refreshing synonyms file

curl -XPOST 'localhost:9200/my_index/_close'
curl -XPUT 'localhost:9200/my_index/_settings' -d '
{
"index" : {
"analysis.filter.synonym.synonyms_path" : "synonyms.txt"
}
}'
curl -XPOST 'localhost:9200/my_index/_open'

第二种(支持动态更新):

elasticsearch.yml最后添加以下内容:

index.analysis.analyzer.default.type: ik #默认分词用ik
index:
analysis:
filter:
local_synonym:
type: dynamic_synonym
synonyms_path: dynamic-synonym/synonym.txt
interval:
remote_synonym:
type: dynamic_synonym
synonyms_path: http://127.0.0.1:8082/remote_ext_synonym.txt
interval:
includeIndexs: [test,music,uzai]
excludeIndexs: [authors]
blankSynonymWord: --b,--b
analyzer:
ik:
alias: [ik_analyzer]
type: ik
#type: org.elasticsearch.index.analysis.IkAnalyzerProvider
ik_max_word:
type: ik
use_smart: false
ik_smart:
type: ik
use_smart: true
ik_syno:
type: custom
tokenizer: ik
filter: [local_synonym,remote_synonym]
ik_syno_smart:
type: custom
tokenizer: ik
filter: [local_synonym,remote_synonym]
use_smart: true
standard_syno:
type: custom
filter: [local_synonym,remote_synonym]
tokenizer: standard

下载插件(支持动态更新):

https://github.com/bells/elasticsearch-analysis-dynamic-synonym

1、mvn package
2、copy and unzip target/releases/elasticsearch-analysis-dynamic-synonym-{version}.zip to your-es-root/plugins/dynamic-synonym
注意
1、我用的是elasticsearch-2.4.1,插件版本要对应上
2、dynamic-synonym和ik中的某些jar重复,这样会报错,解决方式:删除重复的jar

参考:

http://www.cnblogs.com/yjf512/p/4789239.html

http://blog.csdn.net/tianzhaixing2013/article/details/51506496

http://blog.csdn.net/yusewuhen/article/details/50685685

http://11670039.blog.51cto.com/11660039/1825728

elasticsearch同义词及动态更新的更多相关文章

  1. 【Spark】SparkStreaming-流处理-规则动态更新-解决方案

    SparkStreaming-流处理-规则动态更新-解决方案 image2017-10-27_11-10-53.png (1067×738) elasticsearch-head Elasticsea ...

  2. JSPatch – 动态更新iOS APP

    原文:http://blog.cnbang.net/works/2767/ JSPatch是最近业余做的项目,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的 ...

  3. JAVA代码热部署,在线不停服动态更新

    本地debug的时候,可以实时编译并更新代码,线上也可以不停服来动态更新类,即所说的java热部署.   JDK代理的两种方式: 1.premain方式是Java SE5开始就提供的代理方式,但其必须 ...

  4. 在Android中实现service动态更新UI界面

    之前曾介绍过Android的UI设计与后台线程交互,据Android API的介绍,service一般是在后台运行的,没有界面的.那么如何实现service动态更新UI界面呢?案例:通过service ...

  5. Android中动态更新ListView(转)

    在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnSc ...

  6. Js多国时间动态更新

    Js多国时间动态更新 点击下载

  7. Fragment碎片的创建和动态更新

    Fragment,在平板应用中较为参见,把视图分为两个甚至多个模块. 一,一个简单的fragment 1.创建两个局部文件,用于等待被调用 (1)left_fragment (2)right_frag ...

  8. django 动态更新属性值

    django 动态更新属性值 class TestTime(models.Model): """ 功能说明:指定测试的每一关总用时 """ ...

  9. iOS 利用 Framework 进行动态更新

    http://nixwang.com/2015/11/09/ios-dynamic-update/ 前言 目前 iOS 上的动态更新方案主要有以下 4 种: HTML 5 lua(wax)hotpat ...

随机推荐

  1. 基于服务(Web Service)的文件管理Winform程序实现

    1.       描述 面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现 ...

  2. Maven项目java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger报错

    本文转载自:http://www.javaweb1024.com/info/894.jspx maven管理的项目,里面已经引入了log4j的包 maven引入如下: <dependency&g ...

  3. 自定义 Activity 的 标题栏 TitleBar

    自定义 Activity 的 标题栏 TitleBar 1. 修改标题栏的高度,背景 编辑styles.xml,添加: <?xmlversion="1.0" encoding ...

  4. (C#) 使用Nullable类型

    有个case,对一个double数设置初始值,然后,在程序运行中,为double赋值.(注意,也可能没有赋值). 这个时候,可以用Nullable 来设置初始值,在程序的最后做个判断. 参考:

  5. 为不同版本的 Windows 编写驱动程序

    MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554887(v=vs.85).aspx 创建驱动程序项目时,指定 ...

  6. GDB 调试 一些命令

    1. gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式     x/ (n,f,u为可选参数)n: 需要显示的内存单元个数,也就是从 ...

  7. C#泛型代理、泛型接口、泛型类型、泛型方法

    //http://www.cnblogs.com/JeffreySun/archive/2012/11/14/2770211.html //http://www.baqima.com/a/2628.h ...

  8. @override的意思

    @Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记 @Override是伪代码,表示重写( ...

  9. iOS 趣谈设计模式——通知

    [前言介绍] iOS的一种设计模式,观察者Observer模式(也叫发布/订阅,即Publich/Subscribe模式). 观察者模式,包含了通知机制(notification)和KVO(Key-v ...

  10. 《JavaScript高级程序设计》学习笔记(2)--JS运算符详解

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 思维导图 前面对JS的运算符的操作很多细节的东西没有提及,今天给大家分享一张网上找的思维导图,对这一部 ...