我正在尝试从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\"}"起作用了。但是分析器是从手册上复制过来的。
发布于 2013-11-26 21:17:38
我不相信你只是简单地复制和粘贴这一行。您应该用您希望使用的字段名和分析器替换field_name和analyzer_name:
所以,
"analyzer": "perfield:{field_name:\"analyzer_name\"}"应该是这样的:
"Analyzer: "perfield:{content:\"ENGLISH\"}https://stackoverflow.com/questions/20224777
复制相似问题