Dynamic-Synonym 是 ElasticSearch 动态更新同义词插件 。主要提供了动态更新同义词的功能,支持本地文件和远程文件。
安装
1.
mvn package
2. 将target/releases/elasticsearch-analysis-dynamic-synonym-{version}.zip
解压到 your-es-root/plugins/dynamic-synonym
示例代码:
{ "index" : { "analysis" : { "analyzer" : { "synonym" : { "tokenizer" : "whitespace", "filter" : ["synonym"] } }, "filter" : { "remote_synonym" : { "type" : "dynamic_synonym", "synonyms_path" : "http://host:port/synonym.txt", "interval": 30 }, "local_synonym" : { "type" : "dynamic_synonym", "synonyms_path" : "synonym.txt" }, } } } }
说明:synonyms_path
是必须要配置的,根据它的值是否是以http://
开头来判断是本地文件,还是远程文件。 interval
非必须配置的,默认值是60,单位秒,表示间隔多少秒去检查同义词文件是否有更新。ignore_case
非必须配置的, 默认值是falseexpand
非必须配置的, 默认值是trueformat
非必须配置的, 默认值是空字符串, 如果为wordnet,则表示WordNet结构的同义词。
对于本地文件:主要通过文件的修改时间戳(Modify time)来判断是否要重新加载。
对于远程文件:synonyms_path
是指一个url。 这个http请求需要返回两个头部,一个是 Last-Modified
,一个是 ETag
,只要有一个发生变化,该插件就会去获取新的同义词来更新相应的同义词。
注意: 不管是本地文件,还是远程文件,编码都要求是UTF-8的文本文件
1 安装elasticsearch-analysis-dynamic-synonym插件 下载地址:GitHub - bells/elasticsearch-analysis-dynamic-synonym: The dynamic synonym plugin adds a synonym token filter that reloads the synonym file(local file
1、下载同义词插件 https://github.com/bells/elasticsearch-analysis-dynamic-synonym 2、修改dynamic-synonym插件源码 2.1更新源码里面的es版本,es版本之前的差异很大 更新的很快一定要更新es的版本 2.2修改配置里面的db连接信息 jdbc.url=jdbc:oracle:thin:@10.111.
elasticsearch 5.2.1 elasticsearch-analysis-dynamic-synonym 5.1.1 看来要改改了,根据错误信息改了一下,不错可以使用 elasticsearch-analysis-dynamic-synonym 5.2.1 下载地址 风.fox https://github.com/bells/elasticsearch-analysis-dynami
计算属性检测对属性所做的更改,并在使用set()方法调用它们时动态更新计算属性。 语法 (Syntax) ClassName.set('VariableName', 'UpdatedValue'); 例子 (Example) 以下示例显示了对属性进行更改时动态更新的值 - import Ember from 'ember'; export default function() { var
问题内容: 是否可以在索引中存储elasticsearch的同义词?还是可以从像ouchdb这样的数据库中获取同义词列表?我想通过REST- API将同义词动态添加到elasticsearch。 问题答案: 使用同义词有两种方法: 在编制索引时扩展它们, 在查询时扩展它们。 不建议在查询时扩展同义词,因为它会引起以下问题: 评分,因为同义词具有不同的文档频率, 多令牌同义词,因为查询解析器在空白处
问题内容: 我有一个表和两个具有相同表的数据库,但是一个是另一个的符号链接,并且只允许对该表进行读取。 我已经使用Hibernate将表映射到Java,并使用spring根据某些输入条件将实体管理器的数据源设置为两个数据库之一。 当我连接到第二个数据库时,我仅调用只读操作(选择),但是Hibernate似乎试图将某些内容刷新回数据库,并且它无法告诉该视图不允许更新。 如何仅对第二个数据源禁用此更新
问题内容: http://www.mkyong.com/hibernate/hibernate/hibernate-dynamic-update-attribute- example/ 也提到了使用dynamic-update或dynamic- insert有积极的作用,尽管通常只对性能有一点影响。 但是参考文档提到,这也会对性能产生负面影响,如下所述:http : //docs.jboss.or
你甚至可以映射 Map 类型的属性: <dynamic-component name="userAttributes"> <property name="foo" column="FOO" type="string"/> <property name="bar" column="BAR" type="integer"/> <many-to-one name="baz" c
到现在,我们已经将QML作为一个工具用来构造静态场景和静态场景的导航。根据不同的状态和逻辑规则,一个实时动态的用户界面已经被创建。通过使用QML和JavaScript以更加动态的方式,进一步的扩大灵活性。组件可以在运行时加载和实例化,元素能够被销毁。动态创建的用户界面能够被存储在磁盘上,并且恢复。
动态绑定确定在运行时而不是在编译时调用的方法。 动态绑定也称为后期绑定。 在Objective-C中,所有方法都在运行时动态解析。 执行的确切代码由方法名称(选择器)和接收对象确定。 动态绑定可实现多态性。 例如,考虑一组对象,包括Rectangle和Square。 每个对象都有自己的printArea方法实现。 在下面的代码片段中,表达式[anObject printArea]应该执行的实际代码
动态段以route()方法中的“:”开头,后跟标识符。 URL在模型中使用id属性定义。 语法 (Syntax) Router.map(function() { this.route('linkpage', { path: '/linkpage/:identifier' }); }); 例子 (Example) 以下示例显示如何使用动态段来显示数据。 打开在app/templates/下创