[英]SolrNET - Data at the root level is invalid. Line 1, position 1
我正在使用Solar :7.0.1 on:localhost:8983 / solr / global
我使用帶有以下代碼示例的SolrNET 0.8.1:
using SolrNet;
using Microsoft.Practices.ServiceLocation;
Startup.Init<SOLRModel>("http://localhost:8983/solr/global");
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<SOLRModel>>();
var results = solr.Query(new SolrQuery("*:*&wt=xml")); // Throws Error Here.
我收到一個錯誤:
Data at the root level is invalid. Line 1, position 1.
我正在使用默認架構,也嘗試過techproducts示例,但得到相同的錯誤。
我可以導航到: http:// localhost:8983 / solr / global / select?q = :我得到了正常的JSON響應。
使用&wt=xml
給我格式正確的XML響應:
<?xml version="1.0" encoding="UTF-8" ?>
- <response>
- <lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
- <lst name="params">
<str name="q">*:*</str>
<str name="wt">xml</str>
</lst>
</lst>
<result name="response" numFound="0" start="0" />
</response>
請有人告訴我在哪里可以解決此錯誤。
SolrNet doc頁面上說:
無論您給出什么,它都會直接傳遞給Solr的q參數
不應將&wt=xml
傳遞給q
參數,SolrNet需要將其完全視為一個單獨的參數。 這適用於您要設置的任何其他參數,例如開始,排序等。
正確的方法是使用重載solr.Query(ISolrQuery query, QueryOptions options)
,並將這些參數通過ExtraParams
屬性傳遞。
一個完整的例子:
using SolrNet;
using Microsoft.Practices.ServiceLocation;
Startup.Init<SOLRModel>("http://localhost:8983/solr/global");
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<SOLRModel>>();
var options = new QueryOptions();
options.ExtraParams = new KeyValuePair<string,string>[] {
new KeyValuePair<string,string>("wt", "xml")
};
var results = solr.Query(new SolrQuery("*:*"), options);
我發現默認情況下solrnet返回json。 為了解決這個問題,我在查詢中為用於將'wt'設置為xml的queryoptions傳遞了Extraparams。 請參閱文檔以設置額外的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.