Amazon现在使用服务支持全文搜索。它会自动复制海王星到Elasticsearch的数据。我的问题是:海王星在复制过程中是否支持自定义转换逻辑?例如,我在海王星中有一个顶点,如Brand(id=123, name="Calvin Klein"),我希望将自定义的转换逻辑应用到顶点,以便将这个顶点转换为Elasticsearch中的文档{id:123, name:"Calvin Klein", normalizedName:"calvinklein"}。
发布于 2020-05-19 02:41:07
支持自定义逻辑吗?
是的,海王星复制过程确实允许用户拥有自己的转换逻辑,以便在弹性搜索中存储数据。但是我们必须小心,因为更改ES文档可能会破坏来自NeptuneGremlin的ES对文本搜索的支持,因为它需要文档中的所有原始字段。如果需要,可以随时向弹性搜索文档中添加新字段。
可以在Gremlin查询?中使用自定义ES字段吗?
如果Gremlin属性存储在ES文档中,即作为“谓词”字段中的嵌套字段,则可以在gremlin FTS查询中使用自定义ES字段。
Ex: if {normalizedName:"calvinklein"} is to be added as custom field then ES document should store it as: { ....... // Original fields "predicates": { ....... // Original Properties "normalizedName":[ { "value": "calvinklein" } ] }
与任何其他Gremlin属性一样,只能使用Neptune FTS查询搜索此字段。(场不在海王星,而存在于海王星中)
如何添加自定义转换逻辑?
您所指的示例使用基于Python的AWS处理程序来使用NeptuneStreams将数据从海王星复制到弹性搜索。它从NeptuneStreams获取更改日志,并将它们转换为ES请求。
可以为处理流记录提供自己的Lambda poller处理程序的实现。详情请参考以下博文:
https://aws.amazon.com/blogs/database/capture-graph-changes-using-neptune-streams/
根据上面的博客文章,请遵循以下步骤:
https://stackoverflow.com/questions/59763542
复制相似问题