我只是想知道什么是弹性搜索。据说它有助于搜索数据,但是当我看到一些网络研讨会时,感觉就像我必须在一种Elastic datastore中复制我的数据...这对我而言并不意味着什么。这样,所有在左侧进行的修改都必须在右侧进行报告,并且Elastic Search返回的数据可能不是正确的格式。Elastic Search可以直接在我的数据库中搜索吗?
它与Neo4J图形数据库一起使用。有人已经做过类似的事情吗?难道这只会取代Cypher查询吗?
感谢您的建议,帮助我认识到Elastic Search对我们的项目真正有帮助。
Elasticsearch 是一个数据库,但是它不是您可能习惯的关系数据库。这是一个NoSQL数据库。
您将JSON文档插入索引中。您查询该索引以查找符合特定条件的文档。
它也经过分片和节点分布,从而具有弹性和可扩展性,并且(如果设置正确)还可以提高性能。
这意味着它真的很擅长“搜索引擎”风格的数据库查询,但是由于它不是关系型的,因此无法非常轻松地完成等效于SQL JOIN操作的操作。
一个示例用例是logstash和kibana(称为ELK堆栈),其中logstash处理系统事件日志(syslog,httpd日志等),以分析元数据(例如日志源,引荐来源网址,URL,会话ID等) 。-然后插入elasticsearch。
由于每个事件都是一条自包含的信息,因此Elasticsearch做得特别好。
然后,您可以将Kibana用作可视化引擎来显示您的日志,还可以执行分析-多数匹配页面,请求的地理分布,传入引荐来源,基于时间的请求分布等。
但是它也会整理这些日志,因此,如果您运行一个具有多个Web服务器节点的非常大的,地理分布的网站-或者您的机房中只有很多服务器并希望总结系统日志-您就可以提供全部日志进行弹性搜索。
它的设计非常适合处理近实时数据插入和分析。它对于“论坛样式”数据模型也非常有效,因为基本上您要做的就是查询具有特定论坛名称的帖子列表,并找到对特定父节点的回复-但它们是独立的“文档”。
因此,是的,您可能可以使用它来搜索现有数据库,但是您必须考虑自己的数据模型-您不能只转换传统的关系模型,而必须将其展平。在RDBMS术语中,非规范化是一个罪过,但是对于搜索引擎而言,它实际上是相当不错的,因为您可以更有效地并行执行查询。