2013-07-11 4 views
1

solrnet.dll 및 Microsoft.Practices.ServiceLocation.dll을 사용하여 Tomcate windows xp에서 solrNet을 실행 중이고 오류가 발생했습니다 원격 서버가 오류를 반환합니다 (400). 의뢰.solrnet 서버 연결 오류입니다. 원격 서버에서 오류를 반환했습니다 : (400) 잘못된 요청

solr.Add(new Article() 
    { 
     _id = 1, 
     _title = "My Laptop", 
     _content = "My laptop is portable power station", 
     _tags = new List<string>() { 
     "laptop","computer","device" 
     } 

    }); 

이 코드에 대한 추가 내용 난 다음 코드를 사용하고 ...

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using SolrNet; 
using SolrNet.Attributes; 
using SolrNet.Commands.Parameters; 
using Microsoft.Practices.ServiceLocation; 

namespace solrIndex_creator 
{ 

class Article 
    { 
    [SolrUniqueKey("id1")] 
    public int _id { get; set; } 

    [SolrField("title1")] 
    public string _title { get; set; } 

    [SolrField("content1")] 
    public string _content { get; set; } 

    [SolrField("tag1")] 
    public List<string> _tags { get; set; } 

    ISolrOperations<Article> solr; 

    public void _write_Data() 
    { 
     Startup.Init<Article>("http://localhost:8080/solr/"); 
     solr = ServiceLocator.Current.GetInstance<ISolrOperations<Article>>(); 

     solr.Add(new Article() 
     { 
      _id = 1, 
      _title = "My Laptop", 
      _content = "My laptop is portable power station", 
      _tags = new List<string>() { 
      "laptop","computer","device" 
      } 

     }); 

     solr.Add(new Article() 
     { 
      _id = 2, 
      _title = "my iphone", 
      _content = "my iphone consumes power", 
      _tags = new List<string>() { 
       "phone", 
       "apple", 
       "device" 
      } 
     }); 

     solr.Add(new Article() 
     { 
      _id = 3, 
      _title = "your blackberry", 
      _content = "your blackberry has an alt key", 
      _tags = new List<string>() { 
      "phone", 
      "rim", 
      "device" 
      } 
     }); 
     solr.Commit(); 
    } 

답변

2

이 오류는 아마 당신의 SOLR의의 schema.xml <fields> 설정과 함께 불일치에 관련하여 기사 클래스. 프로그램을 디버그하고 잘못된 요청 오류를 조사하여 문제가 무엇인지 자세히 파악할 수 있어야합니다. 또는 자세한 내용은 Solr (예 : Jetty, Tomcat 등의 호스팅 컨테이너)의 서버 로그를 검사 할 수 있습니다.

또한 Article 클래스의 Tags 속성을 SolrNet Mapping wiki의 multiValued 예제와 같이 좀 더 일반적인 ICollection으로 변경했습니다.

+0

thnks 나는이 오류를 해결했지만 'org.apache.solr.common.SolrException : solr.Commit()와 같은 색인을 커밋 할 때 알 수없는 커밋 매개 변수'waitFlush '가 발생했습니다 –

+0

이것은 이전 SolrNet 라이브러리 및 Solr 4.X 버전의 릴리스. 빌드 서버에서 SolrNet의 최신 버전을 다운로드 할 수 있습니다 - http://teamcity.codebetter.com/project.html?projectId=project36&guest=1 (참고 : 아티팩트 링크를 클릭하여 다운로드 가능한 zip 파일로 이동하십시오). –

+1

** 빌드 서버 **에서 ** 다운로드, 나는 약 1 시간 동안 '커밋'에 대한 예외를 알아 냈다. – Habib