2013-11-26 13 views
0

내가 CouchDB를에서 인덱스 문서를 시도하고 있지만, 다음과 같이 루씬은 예외를 던지고있다 :예외 CouchDB를-루씬

WARN [mobiprofiletest] Exiting after init() raised exception. 
java.lang.IllegalArgumentException: No enum constant com.github.rnewson.couchdb.lucene.util.Analyzers.{"PERFIELD" 
at java.lang.Enum.valueOf(Enum.java:236) 
at com.github.rnewson.couchdb.lucene.util.Analyzers.valueOf(Analyzers.java:45) 
at com.github.rnewson.couchdb.lucene.util.Analyzers.getAnalyzer(Analyzers.java:176) 
at com.github.rnewson.couchdb.lucene.couchdb.View.getAnalyzer(View.java:57) 
at com.github.rnewson.couchdb.lucene.DatabaseIndexer.init(DatabaseIndexer.java:835) 
at com.github.rnewson.couchdb.lucene.DatabaseIndexer.run(DatabaseIndexer.java:479) 
at java.lang.Thread.run(Thread.java:744) 

내 설계 문서는 다음과 같습니다 : 난

{ 
    "_id": "_design/fulltextTest", 
    "_rev": "11-6121dccd00af8f95a9e222755147ebc8", 
    "language": "javascript", 
    "fulltext": { 
     "fulltextTest": { 
      "index": "function(doc) {\n var ret=new Document(); ret.add(doc.objType); return ret;\n}", 
      "analyzer": "perfield:{field_name:\"analyzer_name\"}" 
     } 
    } 
} 

시스템에 대한 쿼리를 시작합니다.

curl -X GET "http://localhost:5984/_fti/local/mobiprofiletest/_design/fulltextTest/fulltextTest?q=hello" 

예외가 throw됩니다.

나는 그것이 작동하고

"analyzer": "perfield:{field_name:\"analyzer_name\"}" 

을 제거합니다. 그러나 분석기는 매뉴얼에서 복사 붙여 넣기됩니다.

답변

1

나는 당신이 단순히 그 선을 복사하여 붙여 넣기위한 것이라고 생각하지 않습니다.

"Analyzer: "perfield:{content:\"ENGLISH\"} 
+0

예 당신이 맞다 :

"analyzer": "perfield:{field_name:\"analyzer_name\"}" 

처럼 보일 것이다, 그래서

: 당신은 당신의 필드 이름과 당신이 그 (것)들을 위해 사용하고자하는 분석기와 field_nameanalyzer_name을 교체해야합니다 나는 잘못된 예를 베꼈다. 설계 문서는 다음과 같이해야한다 :'{ "_id": "_design/fulltextTest" "언어": "자바 스크립트", "전체 텍스트": { "fulltextTest": { "인덱스": "기능을 ("분석기": "perfield : {기본 : \"키워드 \ "}" } {\ n var ret = 새 문서(); ret.add } }' – Luman75