使用由elasticsearch提供支持的大型面向数据的搜索产品。我们在此应用程序之上构建了许多机器学习功能,但目前我们在决定如何将相当标准的基于NLP的单词标签集成到我们的ES索引中时遇到了一些困难。
目前我们有一个标记服务,可以使用相应类型(或类型,但现在可能有用的一个)注释一个单词。这个函数可以抽象为:type = getWordType(word)
我想必须有一种方法将这个标记服务集成到索引时应用的分析链中,也许,我们告诉索引特定单词属于哪个类型。但是,进行这种高级分析有点超出了我的弹性搜索能力。有没有人在弹性搜索中指出这种高级分析?
谢谢!
答案 0 :(得分:2)
您可能需要查看Elasticsearch 5.0中引入的ingest node功能。这允许您在Elasticsearch中索引文档之前预处理文档并将字段添加到JSON中。
我写了一个使用OpenNLP来丰富文档的摄取处理器。你可以看看那个并根据你的需求进行调整(同样,非常欢迎拉取请求)。
上查看答案 1 :(得分:0)
这是在Elasticsearch 6.5中通过类型annotated_text
:https://www.elastic.co/guide/en/elasticsearch/plugins/6.x/mapper-annotated-text-usage.html
从本质上讲,类似的同义词,标记(或命名的实体ID等)可以与您标记的词位于同一位置。
需要安装一个插件,即Mapper带注释的文本插件。