如何利用AWS Neptune作为数据源实现全文搜索

4

我在其他问题中看到,Gremlin和Neptune不支持本地全文搜索。

作为我的网站的一部分,我如何提供此功能?

理想情况下,它不需要运行更多的基础设施/软件,因为我必须负责维护。

考虑一些选项,如使用外部搜索服务,例如Solr或ElasticSearch。那么AWS的另一个服务呢?Cloudsearch?

谢谢


刚看到这篇关于Neptune Streams的博客文章。它能用来作为搜索引擎的数据源吗?https://aws.amazon.com/blogs/database/capture-graph-changes-using-neptune-streams/ - James Render
2个回答

7
您的问题非常及时。亚马逊Neptune和ElasticSearch之间的集成刚刚推出[1]。当您向图形中添加数据时,使用Streams功能,Neptune将自动更新一个ElasticSearch索引。这种方法类似于您考虑构建的方法,但具有额外的优势,您可以直接从图形查询中访问索引,而不需要编写调用索引然后调用Neptune的包装器代码。您可以通过在查询中包含一些“神奇”的字符串来使用ElasticSearch索引,在Gremlin和/或SPARQL查询中使用它们,告诉Neptune使用ElasticSearch索引而不是其自己的内部索引。您可以控制哪个ElasticSearch查询API应该使用给定的Gremlin/SPARQL查询。如何设置环境的说明已包含在同一链接[1]中,此过程不会花费太长时间。希望这能有助于您的用例。顺便说一句,该功能的另一个好处是,在使用Gremlin时,您无需特别修改客户端库即可利用这些新功能。
[1]https://docs.aws.amazon.com/neptune/latest/userguide/full-text-search.html

0

CloudSearch 是一个不错的选择,但请注意“照顾”它是不可避免的。您至少需要一个错误监控/日志记录机制,使您能够查看哪些查询失败并追踪原因。例如可能是发音符号处理不正确导致的。但是,请注意,需要一些代码将 Neptune 与 CloudSearch 连接起来,我不知道有没有现成的方法将某些数据从 Neptune 作为索引传输到 CS。至少需要一个 Lambda 函数。Lambda 函数值得考虑。


同意可观测性要求。Neptune 流似乎是保持搜索引擎与变化保持新鲜的有趣方式。我们有一个正在运行的 Elasticsearch 实例,因此将尝试集成这两个工具。 - James Render

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接