2016-03-06 139 views
-1

我正在为使用elasticsearch的网站创建一个内部搜索引擎,主要是因为我们真的有很多关于mysql的记录(大约10M),我们想要利用全文搜索。使用Elasticsearch在symfony2上创建一个内部搜索引擎

我们目前正在使用教条与MySQL,所以我有一个特定类型的信息的实体,并在MySQL上搜索时,我用这个实体的数组传递给模板。

迄今为止好。

我的问题主要是关于用于此特定任务的最佳做法。

我是否需要在ES上搜索,然后以某种方式将结果传递给模板(仍然需要决定如何),或者我可以简单地搜索并从ES获得需要的记录的ID,然后创建我的实体从MySQL并将它们传递给模板?第二个选项可能更容易,我只能在ES上保存我想要执行搜索的数据。

感谢

中号

回答

0

给一个尝试FOSElasticaBundle。这是一个建立在Elastica之上的高品质图书馆,基本实现了您的第二个选项。

它允许在ES索引中映射您的Doctrine实体的字段,当它们通过Doctrine更新时自动重新索引文档,并在您执行ES搜索查询时返回Doctrine实体的实例。

+0

我无法使用ES2.2和symfony 2.8来进行elasticabundle工作,也许是一些兼容性问题,但我已经创建了使用ES php API的抽象。我需要以下信息来决定准确复制哪些字段并在ES上同步... – user3174311

+0

您可以使用此实验分支:https://github.com/FriendsOfSymfony/FOSElasticaBundle/pull/1002 –