The requested URL was not found on this server. 不管你信不信,反正我是没找到

请问一个在查询的同时分组聚合的问题

Elasticsearchrochy 回复了问题 • 3 人关注 • 1 个回复 • 1596 次浏览 • 2019-01-24 09:30 • 来自相关话题

es中设置堆内存为31G,但是每次日志中显示30.6G,那0.4G是用来做什么呢?

ElasticsearchLeeeo 回复了问题 • 4 人关注 • 1 个回复 • 2829 次浏览 • 2019-01-28 18:09 • 来自相关话题

指定配置文件启动Logstash失败

LogstashAdrian_dan 回复了问题 • 10 人关注 • 10 个回复 • 42824 次浏览 • 2020-08-12 14:45 • 来自相关话题

核心词识别后在ES DSL中的使用方法推荐

回复

Elasticsearchcore_wzw 发起了问题 • 1 人关注 • 0 个回复 • 2338 次浏览 • 2019-01-23 16:16 • 来自相关话题

新增数据如何快速添加到ES数据库中

Elasticsearchfanmo3yuan 回复了问题 • 3 人关注 • 2 个回复 • 11403 次浏览 • 2019-01-25 10:54 • 来自相关话题

在 Elastic Stack 中如何监听多个 Go 应用程序?

Beatsmedcl 回复了问题 • 2 人关注 • 1 个回复 • 2124 次浏览 • 2019-01-23 17:10 • 来自相关话题

data目录下的存储问题

Elasticsearchfanmo3yuan 回复了问题 • 3 人关注 • 2 个回复 • 3856 次浏览 • 2019-01-23 15:25 • 来自相关话题

慢日志全局级别设定

Elasticsearchfanmo3yuan 回复了问题 • 4 人关注 • 5 个回复 • 3336 次浏览 • 2019-01-23 15:22 • 来自相关话题

efk elasticsearch 怎么修改timestamp时区

Elasticsearchzqc0512 回复了问题 • 3 人关注 • 3 个回复 • 2612 次浏览 • 2019-01-23 14:46 • 来自相关话题

reindex怎么使用啊

ElasticsearchJackGe 回复了问题 • 5 人关注 • 3 个回复 • 2990 次浏览 • 2019-01-23 17:41 • 来自相关话题

filebeat进行json解析之前能够替换被解析的字符串中的字符吗?

回复

BeatsAtom 回复了问题 • 1 人关注 • 1 个回复 • 4820 次浏览 • 2019-01-23 15:50 • 来自相关话题

使用Java API访问ES时,ES需要用户名密码,那么Java的代码怎么写?

Elasticsearchrochy 回复了问题 • 2 人关注 • 1 个回复 • 8934 次浏览 • 2019-01-23 14:03 • 来自相关话题

社区日报 第518期 (2019-01-23)

社区日报千夜 发表了文章 • 0 个评论 • 1611 次浏览 • 2019-01-23 11:02 • 来自相关话题

1.BAT 等一线大厂 Elasticsearch面试题解读
http://t.cn/E5SHRTH
2.如何监控 Kubernetes 集群日志
http://t.cn/E5TrUwi
3.Elasticsearch 布尔查询
http://t.cn/E5TgM9d

编辑:江水
归档:https://elasticsearch.cn/article/6342
订阅:https://tinyletter.com/elastic-daily

想要在script中进行text.value.contain("xx")的操作,这个如何实现

Elasticsearchygm 回复了问题 • 4 人关注 • 2 个回复 • 3954 次浏览 • 2019-01-24 16:38 • 来自相关话题

自研基于StanfordNLP的ES分词插件

ElasticsearchGod_lockin 发表了文章 • 9 个评论 • 8342 次浏览 • 2019-01-22 19:32 • 来自相关话题

为ES构建Stanford NLP分词插件


Stanford NLP?


Stanford分词器是斯坦福大学NLP团队维护的一个开源分词器,支持了包括中文、英文…的语言,而且除了分词之外,它还支持了包括词性分析、情感分析…的各种功能。\
这俩是这个project的项目主页

  • [Home page](https://stanfordnlp.github.io/CoreNLP/index.html)
  • [GitHub page](https://github.com/stanfordnlp/CoreNLP)

    Why Stanford core NLP?

     
    市面上确实会有很多很有名的开源分词器,比如IK、Jieba,还有一些其他团队和公司提供的开源/商用的分词器,他们各有优劣。但是在各种分词器上比较了一大堆的分词case之后,我们发现Stanford NLP似乎是最适合我们当前需求的一个,因为我们不仅仅需要分词,还需要一些包括情感分析之类在内的更多的一些功能。

    我们公司是做金融数据的搜索推荐的,在对比了各家分词器之后我们老板觉得Stanford NLP的效果最好,但是作为算法出身的人,他实现了一套非常重的分词、排序、搜索的服务。

    在对比如研报、财报之类的信息进行搜索的时候确实会比较有效,但是在对经济类的新闻进行搜索的时候就会显得十分的笨重。

    基于这个背景,我开始试图在ES里面引入老板推崇的Stanford 分词器来适应他的搜索、分词的需要,同时也能够不通过他那个笨重的分词排序服务来对我们系统中大量的经济、金融类的新闻进行分词、索引,并提供和他自己分词效果类似的分词和检索服务。

    Why this project


    我在包括百度、某谷姓404网站、GitHub以及国内的中文社区([Elastic中文社区](https://elasticsearch.cn/))在内的各种地方搜过也问过了,但是似乎没有一个直接开箱可用的分词插件。所以,我只剩一条路了,就是搭建一个自己的插件来引用这个分词器。

    How


    对ES来说,插件主要分为两个部分:

    1. 让ES可以看到的部分(class extends Plugin)
    2. 自己行使职能的部分(functional part)

      plugin


    3. 为了让ES可以加载我们的plugin,我们需要先继承Plugin类,然后我们这个是个分词器插件,所以还要实现AnalysisPlugin类
    4. 看过ES源码或者其他分词器源码的同学应该会知道,分词器插件需要实现两个方法,一个用来提供tokenizer,一个是analyzer分别对应分词器中的这俩。
      • 重写Map<String, AnalysisModule.AnalysisProvider<TokenizerFactory>>是为了可以提供搜索用分词器
      • 重写Map<String, AnalysisModule.AnalysisProvider<AnalyzerProvider<? extends Analyzer>>>是为了可以提供索引用分词器
    5. 在这个分词器里面我们主要是依靠Tokenizer来实现分词的

      functional class


      分词器,特别是Tokenizer主要是靠重写三个方法来实现分词的

    6. incrementToken:用来确定每一个词元,输出每一个单词(字)以及它的位置、长度等
    7. reset:用来重制分词结果
    8. end:用来告诉ES,这段文本的分词已经结束了

      所以我们主要需要重写的就是这仨方法,当然了,为了能让分词器正确的使用,我们还需要添加一些分词器的配置和初始化的内容,具体代码不写了可以参考我的git,主要讲两个坑:
    9. ES是通过配置文件里的路径来寻找对应的插件类
    10. 然后通过配置文件里的key和刚才提到的代码里的key来寻找对应的分词器,所以这俩地方不要写错了
      #plugin-descriptor.properties: classname=org.elasticsearch.plugin.analysis.AnalysisSDPlugin
      #plugin-descriptor.properties: name=stanford-core-nlp
    11. 在开发过程中由于有java-security的存在,所以需要通过AccessController来调用和加载我们需要的外部jar包

      odds and ends


    12. Stanford分词器里面包含了很多功能,目前我使用了分词的部分
    13. 分词器自带词典文件,不过如果要做词典的修改可能需要解包,修改,再重新打包
    14. 我现在hardcode了一大堆的标点符号在里面,后面可能会去优化一下部分逻辑
    15. 待完成的功能还有其他功能包括情感分析之类的

      also see

      [GitHub 地址](https://github.com/godlockin/esStanfordNLPAnalyzer)