Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
Laravel 5 使用Solr添加数据时出错-Solr HTTP错误:OK(409)(HttpException)_Laravel 5_Solr_Solarium - Fatal编程技术网

Laravel 5 使用Solr添加数据时出错-Solr HTTP错误:OK(409)(HttpException)

Laravel 5 使用Solr添加数据时出错-Solr HTTP错误:OK(409)(HttpException),laravel-5,solr,solarium,Laravel 5,Solr,Solarium,我已经尝试了很长一段时间了,我甚至在谷歌上搜索了很多 我在尝试使用Laravel中的Solarium将数据添加到Solr时遇到此错误 (1/1)HttpException Solr HTTP error: OK (409) { "responseHeader":{ "status":409, "QTime":3}, "error":{ "metadata":[ "error-class","org.apache.solr.common.SolrException", "root-error-cl

我已经尝试了很长一段时间了,我甚至在谷歌上搜索了很多

我在尝试使用Laravel中的Solarium将数据添加到Solr时遇到此错误

(1/1)HttpException

Solr HTTP error: OK (409)
{
"responseHeader":{
"status":409,
"QTime":3},
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.common.SolrException"],
"msg":"version conflict for 12 expected=12435421423451 actual=-1",
"code":409}}
in Result.php line 106
at Result->__construct(object(Client), object(Query), object(Response))in Client.php line 753
这是我在EmployeeController.php中的函数

public function enterDataSolr()
{

    $update = $this->client->createUpdate();


    $doc1 = $update->createDocument();
    $doc1->Gender = "M";
    $doc1->Salary = 199999;
    $doc1->SSN = "0050-03-10T21:00:00Z";
    $doc1->City = "Mumbai";
    $doc1->State = "Maharastra";
    $doc1->Zip = 119973;
    $doc1->Region = "Navi Mumbai";
    $doc1->Password = "21435t34tgsd";
    $doc1->id = 12;
    $doc1->_Emp_ID = 1234546;
    $doc1->Name_Prefix = "Mr.";
    $doc1->First_Name = "Kant";
    $doc1->Middle_Initial = "S";
    $doc1->Last_Name = "Bhat";
    $doc1->E_Mail = "nav@gmail.com";
    $doc1->Father_s_Name = "Mant";
    $doc1->Mother_s_Name = "Vandana";
    $doc1->Mother_s_Maiden_Name = "vandana";
    $doc1->Date_of_Birth = 12/2/1998;
    $doc1->Time_of_Birth = "12:24";
    $doc1->Age_in_Yrs = 21;
    $doc1->Weight_in_Kgs = 56;
    $doc1->Date_of_Joining = "2/2/2020";
    $doc1->Quarter_of_Joining = "Q1";
    $doc1->Half_of_Joining = "1st";
    $doc1->Year_of_Joining = 2020;
    $doc1->Month_of_Joining = 2;
    $doc1->Month_Name_of_Joining = "February";
    $doc1->Short_Month = "Feb";
    $doc1->Day_of_Joining = 2;
    $doc1->DOW_of_Joining = "Tuesday";
    $doc1->Short_DOW = "Tues";
    $doc1->Age_in_Company__Years_ = 2.4;
    $doc1->Last___Hike = 2;
    $doc1->Phone_No = 8906986022;
    $doc1->Place_Name = "Delhi";
    $doc1->User_Name = "kant";
    $doc1->_version_ = 12435421423451;
    $doc1->score = 1;

    $doc2 = $update->createDocument();
    $doc2->Gender = "F";
    $doc2->Salary = '200000';
    $doc2->SSN = "0050-03-10T00:00:00Z";
    $doc2->City = "Purcellville";
    $doc2->State = "VA";
    $doc2->Zip = 20134;
    $doc2->Region = "South";
    $doc2->Password = "1";
    $doc2->id = "2a69b460-2299-46a6-84b6-cf16938a1997";
    $doc2->_Emp_ID = 520092;
    $doc2->Name_Prefix = "Mrs.";
    $doc2->First_Name = "Mary";
    $doc2->Middle_Initial = "Watson";
    $doc2->Last_Name = "Jane";
    $doc2->E_Mail = "janemarie@hotmail.com";
    $doc2->Father_s_Name = "Spder";
    $doc2->Mother_s_Name = "May";
    $doc2->Mother_s_Maiden_Name = "may";
    $doc2->Date_of_Birth = "10/1/1921";
    $doc2->Time_of_Birth = "12:02";
    $doc2->Age_in_Yrs = 99;
    $doc2->Weight_in_Kgs = 61;
    $doc2->Date_of_Joining = "2/27/2020";
    $doc2->Quarter_of_Joining = "Q2";
    $doc2->Half_of_Joining = "Q1";
    $doc2->Year_of_Joining = "Q4";
    $doc2->Month_of_Joining = "2";
    $doc2->Month_Name_of_Joining = "February";
    $doc2->Short_Month = "Feb";
    $doc2->Day_of_Joining = 27;
    $doc2->DOW_of_Joining = "Tuesday";
    $doc2->Short_DOW = "Tues";
    $doc2->Age_in_Company__Years_ = 1.7;
    $doc2->Last___Hike = "11%";
    $doc2->Phone_No = 852489628962;
    $doc2->Place_Name = "Purcellville";
    $doc2->User_Name = "llwoods";
    $doc2->_version_ = 1658322049611851997;
    $doc2->score = 1;

    $update->addDocuments(array($doc1, $doc2));
    $update->addCommit();
    $result = $this->client->update($update); 

    echo '<b>Update query executed</b><br/>';
    echo 'Query status: ' . $result->getStatus(). '<br/>';
    echo 'Query time: ' . $result->getQueryTime();

}
我也用过课堂

use Solarium\Client;

Optimistic Concurrency
Solr
的一项功能,可供更新/替换文档的客户端应用程序使用,以确保文档 它们正在替换/更新未被另一个客户端应用程序同时修改的内容

如果存在版本冲突(
HTTP错误代码409
),客户端将重新启动该进程

此功能的工作原理是,在索引中的所有文档上都需要一个
\u version
字段,并将其与作为更新命令一部分指定的版本进行比较。 默认情况下,Solr的模式包括一个
\u version
字段,该字段将自动添加到每个新文档中

$ curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/techproducts/update?_version_=1632740120218042368&versions=true&commit=true&omitHeader=true' --data-binary '
[{ "id" : "aaa",
   "foo_s" : "update attempt with correct existing version" }]'
使用与索引中的值匹配的
\u version
值进行更新,并且更新成功。因为我们在更新请求中包含了
versions=true
, 响应包括
\u版本
字段的不同值

如果文档本身中嵌入了
\u version\u
值的更新。请求失败,因为您指定了错误的版本。 下面是它的错误

{
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.common.SolrException"],
    "msg":"version conflict for aaa expected=100 actual=1632740462042284032",
    "code":409
    }
}
有关更多详细信息,请参阅solr文档

这里的-1表示Solr无法找到具有该版本的文档。 我建议您尝试在solr管理UI上亲自将其中一个文档发送给solr。 选择您的核心/集合名称,然后单击文档链接(在solr管理页面上),您将进入可以将文档发送到solr进行更新的页面


如果您试图更新数据并出现此错误,则可能缺少版本…查询您的solr并检查“版本”。发送更新文档时,其中缺少\“\u version\”。该版本工作正常,返回的版本为3.8,但getDocuments()函数正在按版本显示errorby Version…我的意思是…每个文档都会添加一个版本字段…如果您正在更新现有的solr文档,并且没有传递版本字段,那么它将抛出错误。。。
{
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.common.SolrException"],
    "msg":"version conflict for aaa expected=100 actual=1632740462042284032",
    "code":409
    }
}