php - Symfony2 的 FOSElasticaBundle。如何配置连接到集群?

标签 php symfony elasticsearch elastica

我通过 FOSElasticaBundle 在系统中使用 Elasticsearch 和 Symfony2。

虽然我只使用一台服务器,但可以像这样配置 clients 配置: https://github.com/FriendsOfSymfony/FOSElasticaBundle#basic-configuration

fos_elastica:
    clients:
        default: { host: localhost, port: 9200 }

但是当涉及到集群时,我尝试以某些方式进行配置但它不起作用,如下所示:

fos_elastica:
    clients:
        default: [{host: localhost, port: 9200},{host: localhost, port: 9201}]

还有这个:

fos_elastica:
    clients:
        default:
            - { host: localhost, port: 9200 }
            - { host: localhost, port: 9201 }

我知道 FOSElasticaBundle 使用 Elastica library ,并且该库使用 arrays of parameters 连接到集群,这就是我尝试上述方法的原因。

有谁知道如何连接以配置 FOSElasticaBundle 以连接到某些集群?

提前致谢。

最佳答案

您实际上不需要列出所有节点,因为 ElasticSearch 对集群进行负载平衡。但是,仍然可以这样做(例如,如果您连接到的节点离线)。请记住,这只是简单的循环。

这是你的做法:

fos_elastica:
    clients:
        default:
            servers: 
                - { host: localhost, port: 9200 }
                - { host: localhost, port: 9201 }

关于php - Symfony2 的 FOSElasticaBundle。如何配置连接到集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22111258/

相关文章:

templates - 如何在 Symfony 布局中获取 _locale 变量?

ubuntu - Doctrine :database:create 时出现 Symfony 错误

php - Symfony OutputFormatterStyle "blink"不闪烁

java - ElasticSearch 一个 edgeNGram for autocomplete\typeahead, is my search_analyzer being ignored

java.lang.NoClassDefFoundError : org/elasticsearch/script/mustache/SearchTemplateRequest

elasticsearch - 碎片显示为一个

javascript - 通过 Ajax 加载内容时,WORDPRESS 音频播放器未加载,MediaElement.js 未应用

php - MongoDB 模式设计。得不到我想要的

php - 使用 PHP 简单 HTML DOM 将隐藏的输入标签值作为字符串获取

php - MySql 删除操作比较日期时间与当前日期时间