Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Elasticsearch 7.9.2字符串索引超出范围:0_Php_Windows_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Php,Windows,elasticsearch" /> elasticsearch,Php,Windows,elasticsearch" />

PHP Elasticsearch 7.9.2字符串索引超出范围:0

PHP Elasticsearch 7.9.2字符串索引超出范围:0,php,windows,elasticsearch,Php,Windows,elasticsearch,我正在尝试为一个文档编制索引,我在该文档上遇到此错误 Caught exception: {"error":{"root_cause":[{"type":"string_index_out_of_bounds_exception","reason":"String index out of range: 0"}],"type":"string_in

我正在尝试为一个文档编制索引,我在该文档上遇到此错误

Caught exception: {"error":{"root_cause":[{"type":"string_index_out_of_bounds_exception","reason":"String index out of range: 0"}],"type":"string_index_out_of_bounds_exception","reason":"String index out of range: 0"},"status":500}
我像这样在php中添加索引

$es = $this->elasticsearch->client;
    $params = [
      'index' => 'app_users',
      'body' => [
        'full_name' => "someone",
        'login' => "someone",
        'password' => "password",
        'role' => "Engineer",
        'email' => "email@test.com",
        'status' => "active",
        'last_login' => date("Y-m-d\TH:i:s\Z"),
        'creation_date' => date("Y-m-d\TH:i:s\Z")
      ]
    ];

    try{
      $response = $es->index($params);
      echo "$r->id"."\n";
      echo "- Status => ".ucwords($response["result"])." - ".$r->date."\n";
      unset($rec[$key]);
    }catch(Exception $e){
      echo 'Caught exception: ',  $e->getMessage(), "\n";
      exit;
    }
下面是弹性日志中的错误日志,我认为出于某种原因,它没有传递索引名。如果我做错了什么或错过了什么,有人能指导我吗?我在windows上设置了elasticsearch

[2020-10-15T02:23:58,717][WARN ][r.suppressed             ] [computer_name] path: //app_users/_doc, params: {index=, id=_doc, type=app_users}
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.StringLatin1.charAt(StringLatin1.java:48) ~[?:?]
    at java.lang.String.charAt(String.java:712) ~[?:?]
    at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.validateIndexOrAliasName(MetadataCreateIndexService.java:227) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.validateIndexName(MetadataCreateIndexService.java:165) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.validate(MetadataCreateIndexService.java:941) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:322) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:367) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.action.admin.indices.create.AutoCreateAction$TransportAction$1.execute(AutoCreateAction.java:137) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:47) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.service.MasterService.executeTasks(MasterService.java:702) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.service.MasterService.calculateTaskOutputs(MasterService.java:324) ~[elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.service.MasterService.runTasks(MasterService.java:219) [elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.service.MasterService.access$000(MasterService.java:73) [elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.service.MasterService$Batcher.run(MasterService.java:151) [elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:150) [elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:188) [elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:678) [elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:252) [elasticsearch-7.9.2.jar:7.9.2]
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:215) [elasticsearch-7.9.2.jar:7.9.2]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
    at java.lang.Thread.run(Thread.java:832) [?:?]

仔细阅读elastic服务器日志,它一定是由于错误地添加了一些额外的斜杠而给出了位置

例如:-合并URL时


删除那些额外的斜杠,这将按预期开始工作。

从日志中:
path://app\u users/\u doc
——开头应该只有一个
/
。您的elasticsearch客户端是如何设置的?如果主机名后面有一个尾随的
/
,请尝试删除该主机名?
'host'=>'http://127.0.0.1:9200/“
@rickdenhaan我正在使用它进行连接,但当我删除尾部斜杠时,它不会连接。