如何在我的搜索中集成Elasticsearch

时间:2016-07-12 01:10:12

标签: sql-server elasticsearch

我们有一个广告搜索网站,所有搜索都是通过直接查询sql server数据库的实体框架完成的。

当数据库有大约1000个广告时,它运行得非常好,但现在它达到了300k并且有很多用户正在搜索。现在搜索速度非常慢(使用原始sql并没有多大帮助)我被指示考虑使用Elasticsearch。

我已经有了一些教程,我现在知道它是如何工作的,但我不知道的是:

  1. 我应该停止使用sql server存储广告并开始使用Elasticsearch吗?那么所有其他相关数据呢? Elasticsearch是sql server的替代品吗?
  2. 每个广告都有一些存储在不同表格中的相关数据,如何将其加载到Elasticsearch?作为单个json元素?
  3. 我读了很多数十亿的数据"由Elasticsearch处理,所以我不认为我会遇到300k行的性能问题,对吗?
  4. 有人会更好地向我解释这些问题吗?

1 个答案:

答案 0 :(得分:1)

1-你仍然可以使用它;你不想搜索完整的数据库吗?就在广告上面。它使用no-sql格式,因此它具有很高的可扩展性。它也可以与json一起使用,因此您可以轻松访问它。

2-索引数据时,您应该尝试在同一个文档(sql行)中添加完整的必要数据,这是一个单独的json,但是以有限的方式。存储很便宜,但计算时间不是。

要索引数据,您可以使用filebeat,一个类似于logstash的程序,或创建自己的解决方案,例如,创建一个从数据库读取数据的程序,然后将其传递给elasticsearch in块材。

3-正确,300k行数量很少,但它也取决于您托管elasticsearch的内存。

希望这有帮助。