问题标签 [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 投票
2 回答
719 浏览

php - Elasticsearch 实现按字段和方向排序

从昨天开始,我一直在阅读文档和其他示例帖子,以了解如何在此处添加按字段排序当前查询数组的方向,但到目前为止还没有运气。我见过这样的例子,但我无法安静地绕过它来修改我的数组,因为这是我第一次处理 ES。{"sort": {"_score": "desc"}, "query": { ....

我所需要的只是:我希望能够按pricestockasc顺序desc排序。

每次我尝试更新我的数组以实现排序时,都会{"error":{"code":0,"message":"Invalid option sort"}}出错。

注意:查询数组被传递给Pagerfanta以获得结果。

0 投票
1 回答
334 浏览

symfony - FOSElasticaBundle 和 SoftDeletable Doctrine 不能很好地工作

我目前在我的项目中使用 FOSElasticaBundle 并且要搜索的实体正在使用softdeletable。这似乎不太顺利,因为当实体被软删除时,弹性搜索上的索引没有被删除。再次填充索引是一项非常昂贵的操作,由于我拥有的大型项目集(150 万个项目),需要 30 分钟才能完成。

手动从弹性搜索中删除索引的最佳方法是什么?我打算使用 softdeletable 侦听器,因此当发生 softdelete 时,我会手动将其从索引中删除。但我不确定如何通过 elastica 做到这一点。

0 投票
1 回答
1837 浏览

elasticsearch - 按 timeUpdated 排序,如果存在,否则为 timeCreated

我有 2 个弹性类型的字段,即timeCreatedtimeUpdated。现在我的业务案例是我们应该始终按 订购timeUpdated,除非它是(或不存在),这null显然给我们留下了始终设置的 。timeCreated

现在,根据我对 elasticsearch 中排序工作原理的理解,以下内容将不起作用,因为它将按timeUpdatedANDtimeCreated一起排序,而不是按照我正在寻找的方式。

我不确定这是否可能,但弹性很棒,所以我希望这是我在文档中错过的一件简单的事情。

我正在使用使用 Elastica 的 PHP 的最新版本(我相信是 1.6)(尽管这与原始问题的差异为零)。

编辑

例如,如果我有 3 个文档:

它应该显示的顺序必须是3, 2, 1. 我得到的是2, 3, 1.

0 投票
2 回答
529 浏览

php - 在 Elasticsearch 中允许使用 snowball_analyzer 进行不区分大小写的搜索

首先,我对 ES 完全陌生。我在下面创建了 ES 搜索条件来搜索可以正常工作的项目,但我现在需要的是,我想将字段变为不区分大小写,以便搜索结果与,hello等相同。HeLloHELLO

由于我的知识非常有限,我已阅读下面的帖子无法安静地适用于下面的示例:

not_analyzedmake中删除没有帮助。

这些是我创建的查询:

1

0 投票
1 回答
673 浏览

symfony - Elasticsearch PHP 最长前缀匹配

我目前在 Symfony2 中使用FOSElasticaBundle,我很难尝试建立一个搜索来匹配最长的前缀。

我知道 Internet 上有 100 个示例使用它来执行类似自动完成的搜索。但是,我的问题有点不同。

在自动完成类型的搜索中,数据库包含最长的字母数字字符串(字符长度),用户只提供最短的部分,假设用户键入“jho”,Elasticsearch 可以轻松提供“Jhon, Jhonny, Jhonas”。

我的问题是倒退,我想提供最长的字母数字字符串,我希望 Elasticsearch 为我提供数据库中最大的匹配。

例如:我可以提供“123456789”,我的数据库可以有 [12,123,14,156,16,7,1234,1,67,8,9,123456,0],在这种情况下,数据库中最长的前缀匹配用户提供的号码是“123456”。

我刚开始使用 Elasticsearch,所以我真的没有接近工作设置或任何东西。

如果有任何信息不清楚或丢失,请告诉我,我会提供更多详细信息。

更新 1(使用 Val 的第二次更新)

索引:下载1800+索引

奖金问题

我想为该搜索提供一组数字,并以有效的方式获取每个数字的匹配前缀,而不必每次都执行查询

0 投票
2 回答
199 浏览

symfony - 填充时出现 FOSElasticaBundle NumberFormatException 错误

我在我的 Symfony 2 项目中使用 FOSElasticaBundle。由于今天重新索引导致以下错误:

index: /app/hotel/1 导致 MapperParsingException[failed to parse [priceFrom]]; 嵌套:NumberFormatException[对于输入字符串:“410.00”];

在我的学说 orm yml 中,该priceFrom字段定义如下:

我的fos_elastica配置看起来像这样(config.yml):

我用来重新索引的命令:php app/console fos:elastica:populate

到目前为止,上述设置一直有效。我希望有人能指出我解决这个问题的好方向。

版本:ruflin/elastica (2.1.0) friendsofsymfony/elastica-bundle (v3.1.5) symfony/symfony (v2.6.11)

PS:我的项目中没有其他实体使用 priceFrom 字段。

0 投票
2 回答
370 浏览

symfony - 在 ElasticSearch 中管理关系的最佳方式是什么?

抱歉,如果有人问过这个问题,但我找不到关于这个问题的明确答案。

我在创建我的弹性搜索索引时遇到了麻烦,我不太确定如何正确管理关系。

假设我有以下实体:

  • 产品
    • ID
    • 参考
    • ID
    • 姓名
    • product_id
  • 衬衫
    • ID
    • 颜色
    • product_id
  • 库存项目
    • ID
    • 供应商 ID
    • product_id
    • 数量

我想 :

  • 从它的颜色中找到一件衬衫
  • 查找由供应商 ID 5 提供的所有书籍

我无法找到我是否应该执行多个查询、嵌套对象、父/子关系等......我找不到一个合适的教程,上面写着“那样做”。

实际上我正在使用嵌套对象,但我发现在我的每种类型中重新定义我需要的所有数据都很脏。

你对此有什么建议吗?

谢谢。

0 投票
1 回答
402 浏览

symfony - FosElasticaBundle:如何转储传递给 ElasticSearch 的实际 JSON?

我在 Symfony 项目中使用 FosElasticaBundle。我配置了我的映射,但出现异常“期望字段 [_id] 的简单值但找到 [START_OBJECT]]”。

我想查看 FosElasticaBundle 创建的实际 JSON,以便我可以直接针对我的 ElasticSearch 服务器对其进行测试,并了解有关异常的更多信息。

根据FosElastica 文档,启用调试模式时(即在 DEV 环境中)应记录所有内容,但我看不到这种情况发生;我只看到 Doctrine 查询,但没有看到 JSON。

如何转储 FosElasticaBundle 创建的 JSON?

更新:映射

0 投票
1 回答
400 浏览

symfony - FosElasticaBundle:定义 GUID / UUID 字段的映射

如果我的实体使用 GUID 字段类型作为标识符,如何在config_yml中定义映射?

细节

我有一个 Symfony 2.7.3 和 FosElasticaBundle 3.1.4 的项目。

我已经配置了映射,当我使用填充命令或编辑现有实体时一切正常;但是在创建新实体时出现异常

检查 JSON 响应我注意到_id设置为空对象..."_id":{}...

Uuid类已经有一个__toString方法,我希望它可以解决问题,但我可能遗漏了一些东西。

当前映射

谢谢你。

0 投票
0 回答
28 浏览

php - FOSElasticaBundle:需要在其他数据库中持久化实体吗?

我在工作中使用 Elasticsearch,并且正在考虑使用 FOSElasticaBunble 作为中间抽象层来连接 Elastic。

但我有一个疑问,阅读文档,似乎可以将类型映射到 Doctrine Entities,但似乎也需要将 Elasticsearch 与另一个持久层(如 SQL DB 或 MongoDB)结合起来。

除了 Elasticsearch 之外,是否可以在没有任何额外持久层的情况下使用 Doctrine 实体?

感谢您的关注。