问题标签 [foselasticabundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2808 浏览

symfony - FOSElasticaBundle 和 Doctrine Hydration

我正忙着为我开始的一个新项目检查 elasticsearch。我目前正在运行 Symfony2.5,带有最新的 FOSElasticaBundle 等等。我正在对捆绑包的性能进行一些基准测试(我知道弹性本身非常快),但是我遇到了一个实际上很容易解决的小问题,如果捆绑包的文档更详细的话。

我的实际问题只是如何返回 Elastica 本身响应的“原始”数组,而不是返回一组 Doctrine 对象(我相信这些对象是通过数据库查询填充的)?包括响应时间、最高分数等。FOSElasticaBundle 的文档在这些主题上非常模糊......

当您已经从弹性中获得了所有要查找的信息时,必须重新查询数据库似乎有点适得其反并且速度很慢?还是我在这里遗漏了一些非常明显的东西?

谢谢你的帮助!

0 投票
2 回答
1962 浏览

php - FOSElastica Bundle:检索结果的亮点

我正在尝试使用FOSElastica Bundle通过全局索引搜索返回亮点。

我的配置中有一个全局索引查找器(yml 文件):

我按照文档(这里)使用它:

这完美地工作并返回预期的结果。现在我想使用例如ES的快速矢量荧光笔来突出显示结果中的单词。但是我没有找到任何示例或任何文档来这样做。

我想我需要定义一个更合适的 \Query 对象,例如:

但我找不到任何信息。有什么提示吗?

非常感谢 !!

0 投票
3 回答
3882 浏览

php - 填充 FosElasticaBundle 耗尽 php 内存,可能的内存泄漏?

我已经安装了 FOSElasticaBundle 并让它处理我的数据的横截面。

我的问题出现在我需要用来构建索引的大约 14m 行。我运行了填充命令,昨天大约 6 小时后,它以 10.8% 的速度出错并出现内存错误:

正如你所看到的,我已经将我的 php 内存限制设置为 2G,这应该是相当多的。

错误前的最后一行看起来像

每条线路的电流和峰值都在上升,从大约 30mb 开始。

我的假设是存在某种内存泄漏?当然,这个过程不应该耗尽 php 的内存。我还尝试了带有一些额外参数的命令

但是当我看着它运行时,当前的内存仍在增加。

关于这里可能发生的事情以及我可以做些什么来调试它有什么想法吗?我发现这个讨论听起来像我的问题,但并没有真正提出一个好的解决方案:https ://github.com/FriendsOfSymfony/FOSElasticaBundle/issues/82 。我正在使用学说和默认提供程序。

谢谢-

0 投票
1 回答
223 浏览

java - Symfony FOSElastica ResponseException 与 Elasticsearch

我在我的 Symfony 项目中安装了带有 Composer 的 FOSElastica 3.0。这是我的配置:

很简单吧?

现在当我做 php app/console fos:elastica:populate

它说我:

有什么问题?

编辑:同样的问题fos:elastica:reset

0 投票
1 回答
519 浏览

php - 在 Symfony2 中使用 FOSElasticaBundle 进行任何搜索时的空数组

我有一个我无法解决的问题,我已经尝试了我在网上找到的所有东西。

所以,我是 Symphony 的新手,在我需要实现搜索引擎之前,我还没有遇到任何问题。我查看并发现 Elastico 是一个非常好的选择,我决定实施它。

我已经使用composer安装了它,没有问题。对于最基本的搜索,我的配置如下所示:

我用 . 生成数据没有任何问题php app/console fos:elastica:populate。结果被正确插入(与数据库条目匹配的数字或条目)。

所以,我的问题是无法显示任何结果。我总是有空数组作为结果:

也为空结果:

$repositoryManager = $this->container->get('fos_elastica.manager'); $repository = $repositoryManager->getRepository('WebsiteWebBundle:Story'); $results = $repository->find('name');

我在数据库中有一条名为“name”的记录,所以我应该得到结果。搜索字母也不起作用。

那么,谁能告诉我我做错了什么?或者有什么方法可以显示所有结果,这样我就可以看到结果在那里并且只有搜索失败?

谢谢

0 投票
1 回答
352 浏览

elasticsearch - Elasticsearch - 如果数组包含元素,则包含在构面中

我试图找出是否可以对一个字段进行分面/聚合,如果该字段(这是一个数组)包含 1 个或多个记录。

例如 - 假设我的索引中有 3 个文档,都在“用户”类型下。

我想要某种方式(使用聚合)来返回“拥有(或没有,因为我可以从他们的个人资料中的_totalHits)照片中减去的用户数量。” 在此示例中,预期结果将是2,因为 2 个用户有照片,或1,因为 1 个用户没有照片。显然,我想要的首选是返回照片的用户数量的那个。

这可能吗?如果是这样 - 我将使用哪种类型的聚合来完成此操作?

0 投票
1 回答
1565 浏览

symfony - 将自定义分析器应用于具有弹性搜索的字段、将多个分析器应用于一个字段或使用单个分析器应用于多个字段的正确方法?

编辑:将我当前的查询添加到末尾

我有一个大型的人名数据库,并且正在使用弹性搜索(通过 symfony2 的 FOSElasticaBundle 和 Elastica)来更智能地搜索人名。

我有一个全名字段,我想用标准、ngram 和语音分析器对人名进行索引。

我已经在弹性搜索中设置了分析器,我可以开始将数据转储到索引中。我想知道我在这里做的方式是否是最好的方式,或者我是否可以将分析器应用于单个字段......我问的原因是因为当我执行 get /website/person/:id ,我在纯文本中看到所有三个字段...我期待在这里看到分析的数据,尽管我猜它必须只存在于倒排索引中而不是文档中。我见过的示例使用多个字段,但是否可以将多个分析器添加到单个字段?

我的 config.yml:

当我检查映射时,它看起来不错:

当我获取文档时,我看到所有三个字段都以纯文本形式存储......也许我需要为这些额外的字段设置 STORE: FALSE,或者,它没有被正确分析?

编辑:我目前使用的解决方案,仍然需要一些改进,但对大多数名称都进行了很好的测试

0 投票
2 回答
9558 浏览

elasticsearch - ElasticSearch RoutingMissingException

我正在尝试填充具有父子关系的对象,但出现错误:

[Elastica\Exception\ResponseException] RoutingMissingException[[myindex]/[comment]/[12345] 需要路由]

conf类型的摘录:

无法理解我在这里缺少什么....

我正在使用 Symfony2.3、FOSElasticaBundle 3.0、ElasticSearch 1.2.2

0 投票
1 回答
761 浏览

foselasticabundle - 如何按距离对弹性搜索结果进行排序?


我正在为 symfony2 使用 elasticabundle,我想按距离对我正在寻找的结果进行排序我是 elasticsearch 的新手,我不知道如何启动我正在使用的查询:

谢谢你的时间

0 投票
2 回答
2139 浏览

symfony - 在没有 ES 服务器的情况下使用 FOSElasticaBundle 对 Symfony 应用程序进行单元测试?

我有一个包含一组现有单元测试的应用程序,这些单元测试使用 SQLite 作为数据库。我最近通过 ES 添加了搜索功能,它取代了许多用于直接查询数据库的端点操作。我想在不测试 ES 本身的情况下测试与这些端点相关的所有业务逻辑,这意味着没有可用的 ES 服务器。我计划在一组集成测试中测试 ES 本身,以降低运行频率。

我的问题是试图准确追踪执行流程的情况。

我的第一个倾向是简单地创建 FOSElasticaBundle 为我的索引创建的 ES Finder 的模拟对象。因为我使用的是分页,所以结果比我想象的要复杂:

这实际上一直有效,直到我从控制器返回视图。我的服务从我存储在文件中的 JSON 搜索响应中获取带有预填充结果集的模拟分页适配器(随后传递到我的 ResultSet 对象中)。但是,一旦我返回视图,似乎有一个监听器尝试使用 Query 再次查询 ES,而不是使用我已经传入的 ResultSet。

我似乎找不到这个听众。我也不明白为什么当 ResuletSet 已经存在时它会尝试查询。

我也在使用 FOSRestBundle,并利用他们的 ViewListener 来自动序列化我返回的任何内容。我也没有在该流程中看到任何嫌疑人。我认为这可能与结果集的序列化有关,但到目前为止还无法追踪到有问题的代码。

之前有没有人尝试过类似的事情,并且对如何调试我当前的设置或替代的更好的设置来模拟 ES 进行此类测试有任何建议?