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\"}"
을 제거합니다. 그러나 분석기는 매뉴얼에서 복사 붙여 넣기됩니다.
예 당신이 맞다 :
처럼 보일 것이다, 그래서
: 당신은 당신의 필드 이름과 당신이 그 (것)들을 위해 사용하고자하는 분석기와
field_name
및analyzer_name
을 교체해야합니다 나는 잘못된 예를 베꼈다. 설계 문서는 다음과 같이해야한다 :'{ "_id": "_design/fulltextTest" "언어": "자바 스크립트", "전체 텍스트": { "fulltextTest": { "인덱스": "기능을 ("분석기": "perfield : {기본 : \"키워드 \ "}" } {\ n var ret = 새 문서(); ret.add } }' – Luman75