elasticsearch php客户端在主机上省略端口

时间:2016-01-09 20:03:50

标签: php elasticsearch

我正在创建一个需要弹性搜索入站的项目,我正在使用elasticsearch / elasticsearch包来处理使用php的elasticsearch内容。现在在自述文件中,我得到以下内容:

$hosts = [
     '192.168.1.1:9200',         // IP + Port
     '192.168.1.2',              // Just IP
     'mydomain.server.com:9201', // Domain + Port
     'mydomain2.server.com',     // Just Domain
     'https://localhost',        // SSL to localhost
     'https://192.168.1.3:9200'  // SSL to IP + Port
];
$client = ClientBuilder::create()           
                    ->setHosts($hosts)      // Set the hosts
                    ->build();              // Build the client object

如果我使用没有端口的主机的IP地址作为主机,则端口9200将附加到我在每种情况下请求的URL。我的ES服务器正在侦听端口80,无需将端口连接到它。

我的连接定义如下:

$params = [
    'hosts' => [
        'XXX.XXX.XXX.XXX'
    ],
    'retries' => 5
];

return ClientBuilder::fromConfig($params);

然后客户端抛出异常 NoNodesAvailableException 并抓取异常跟踪我看到正在'url'=>进行连接“http://XXX.XXX.XXX.XXX:9200 /

如何摆脱9200,ES节点正在工作如果我这样做:

http://XXX.XXX.XXX.XXX/?pretty

{
    "status" : 200,
    "name" : "568402dd7628e13d38000138",
    "cluster_name" : "elasticsearch-568402dd7628e13d38000138",
    "version" : {
        "number" : "1.7.1",
        "build_hash" : "b88f43fc40b0bcd7f173a1f9ee2e97816de80b19",
        "build_timestamp" : "2015-07-29T09:54:16Z",
        "build_snapshot" : false,
        "lucene_version" : "4.10.4"
    },
    "tagline" : "You Know, for Search"

}

那么,如果没有指定,9200永远不会被删除会发生什么。如果我放XXX.XXX.XXX.XXX:80那么它也不会有效。

1 个答案:

答案 0 :(得分:1)

看起来定义了完整的合格网址https://example.com:443。谢谢大家的答案