2013-11-26 39 views
0

我想從CouchDB的索引文件,但Lucene是拋出異常如下:異常CouchDB的,Lucene的

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" 

引發上述異常。

當我刪除

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

它的工作。但分析儀是從手冊複製粘貼的。

回答

1

我不相信你只是簡單地複製和粘貼該行。你應該字段名稱和您希望使用他們的分析儀取代field_nameanalyzer_name

所以,

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

應該是這個樣子:

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

是的,你是對的我複製了錯誤的例子。設計文檔必須如下所示:'{ 「_id」:「_design/fulltextTest」, 「language」:「javascript」, 「fulltext」:{ 「fulltextTest」:{ 「index」:「function doc):\ n var ret = new Document(); ret.add(doc.objType); return ret; \ n}「, 」analyzer「:」perfield:{default:\「keyword \」}「 } } }' – Luman75