简体   繁体   English

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

[英]PHP Elasticsearch 7.9.2 String index out of range: 0

I am trying to index a document on which i am getting this error.我正在尝试为我收到此错误的文档编制索引。

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}

I am adding the index in php like this我像这样在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;
    }

Here are the error logs from the elastic logs, I think that for some reason it's not passing the index name.这是来自弹性日志的错误日志,我认为由于某种原因它没有传递索引名称。 Can anyone guide me if i am doing something wrong or i missed something?如果我做错了什么或错过了什么,有人可以指导我吗? I setup elasticsearch on windows.我在 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) [?:?]

Read the elastic server Logs carefully, It must be giving the location where you have by mistaken putted some extra slashes仔细阅读弹性服务器日志,它必须给出你错误地添加了一些额外斜线的位置

Ex:- while merging URLs.例如:- 在合并 URL 时。

Remove those extra slashes and this should start working as expected.删除那些额外的斜线,这应该会按预期开始工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM