请求solr服务器未响应,尝试添加和提交时,SolrNet:SolrConnectionExcept...

博主在使用SolrNet时遇到一个问题,在执行添加产品到索引后,尝试提交时出现了一个`BadRequest`错误。然而,尽管报错,产品还是在重启Tomcat后成功添加到了Solr索引。错误信息显示是远程服务器返回了400错误。经过调查,发现问题是由于SolrNet的旧版本导致的`waitFlush`错误。解决方案是升级到最新版本的SolrNet,从构建服务器获取修复此问题的更新。

我已经到了SolrNet执行“添加”方法的地步,但是当我尝试“提交”时就是收到错误.以下是我的schema.xml,模型,调用它的代码以及出现的错误.甚至更奇怪的是,尽管有错误,但是在重新启动Tomcat之后,该模型仍添加到了我的Solr索引中(因此尽管有错误,但仍然立即添加了我的模型):

schema.xml(字段和字段类型):

型号(Product.cs)*注意-PageId使用Solr默认“ id”,它是一个字符串,唯一且必填:

public class Product

{

[SolrUniqueKey("id")]

public string PageId { get; set; }

[SolrField("part_numbers")]

public ICollection PartNumbers { get; set; }

[SolrField("page_url")]

public string PageUrl { get; set; }

[SolrField("product_name")]

public string Name { get; set; }

}

代码初始化,调用添加并提交*注意-这是一个单元测试,因此init仅被调用一次:

Startup.Init("http://localhost:8080/solr");

Product testProd = new Product() {

EPiPageId = "44",

Name = "TestProd3",

PageUrl = "/TestProd3",

PartNumbers = new List() { "000022222", "000000333333" }

};

var solr = ServiceLocator.Current.GetInstance>();

solr.Add(testProd);

solr.Commit(); // Bad Request Error occurs here.

错误讯息:

SolrNet.Exceptions.SolrConnectionException was unhandled by user code

HResult=-2146232832

Message=The remote server returned an error: (400) Bad Request.

Source=SolrNet

StackTrace:

at SolrNet.Impl.SolrConnection.Post(String relativeUrl, String s) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrConnection.cs:line 104

at SolrNet.Commands.CommitCommand.Execute(ISolrConnection connection) in c:\prg\SolrNet\svn\SolrNet\Commands\CommitCommand.cs:line 71

at SolrNet.Impl.SolrBasicServer`1.Send(ISolrCommand cmd) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrBasicServer.cs:line 87

at SolrNet.Impl.SolrBasicServer`1.SendAndParseHeader(ISolrCommand cmd) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrBasicServer.cs:line 91

at SolrNet.Impl.SolrBasicServer`1.Commit(CommitOptions options) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrBasicServer.cs:line 54

at SolrNet.Impl.SolrServer`1.Commit() in c:\prg\SolrNet\svn\SolrNet\Impl\SolrServer.cs:line 24

InnerException: System.Net.WebException

HResult=-2146233079

Message=The remote server returned an error: (400) Bad Request.

Source=System

StackTrace:

at System.Net.HttpWebRequest.GetResponse()

at HttpWebAdapters.Adapters.HttpWebRequestAdapter.GetResponse() in c:\prg\SolrNet\svn\HttpWebAdapters\Impl\HttpWebRequestAdapter.cs:line 36

at SolrNet.Impl.SolrConnection.GetResponse(IHttpWebRequest request) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrConnection.cs:line 160

at SolrNet.Impl.SolrConnection.Post(String relativeUrl, String s) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrConnection.cs:line 101

InnerException:

编辑感谢Paige的回答:问题是“ waitFlush”错误,它是旧版本SolrNet的错误.我使用的SolrNet版本来自VS NuGet,版本为0.3.1(我认为这是他们的最新稳定版本).他们的google代码站点没有最新的构建,但是构建服务器(此处为“ artifacts”下的http://teamcity.codebetter.com/project.html?projectId=project36&guest=1)确实具有最新的错误修复程序.问题为我解决.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值