异常couchdb lucene

异常couchdb lucene,lucene,couchdb,Lucene,Couchdb,我正试图从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

我正试图从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\"}"

它起作用了。但是分析仪是从手册中复制粘贴的。

我不相信你只是简单地复制粘贴那一行。您应该将
字段名称
分析器名称
替换为您的字段名称和您希望用于它们的分析器:

所以

应该看起来像:

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

是的,你是对的,我抄错了例子。设计文档必须如下所示:
{“\u id”:“\u design/fulltextTest”,“language”:“javascript”,“fulltext”:{“fulltextTest”:{“index”:“function(doc){\n var ret=new document();ret.add(doc.objType);return ret;\n}”,“analyzer”:“perfield:{default:\”关键字\“}”}}
"Analyzer: "perfield:{content:\"ENGLISH\"}