我对 geocouch 有点陌生,并且基本上没有使用 erlang 的经验,目前我得到了我认为可能导致错误匹配错误的索引损坏,但我并不完全确定。此响应在服务器运行一段时间后返回,并且似乎随着时间的推移而增加频率。如果我清理空间索引,错误会消失几个小时。
我们目前正在运行 couchbase-server-community_x86_64_1.1.deb 并且 couchbase 服务器在被褥中显示其版本 1.0.2。
我们发送的查询如下所示:
'_design/blah/_spatial/customView?43.07960959232345743,-88.20843166111015421,43.08021240619384429,-88.20760633888984614'
其中 customView 看起来像这样:
"customView": "function(doc) {if (doc.type && doc.type == \"Custom\") {emit({type: \"Point\", coordinates: [doc.loc[0], doc.loc[1]]}, doc);}};"
并且自定义文档类型具有这种条目:
"loc": [
42.873055,
-73.767514
],
我们得到的回应是这样的
ServerError: (500, ("{{badmatch,not_found},\n [{vtree,'-add_remove/5-fun-0-',3},\n {lists,foldl,3},\n {vtree,add_remove,5},\n {couch_spatial_updater,'-write_changes/4-fun-2-',5},\n {lists,zipwith,3},\n {couch_spatial_updater,write_changes,4},\n {couch_spatial_updater,update,2}]}", '{gen_server,call,[<0.12711.178>,{request_group,241518},infinity]}'))
所以问题是我知道这是一个调用堆栈,但我不完全确定发生了什么,并希望有人可以通过提供一些关于这是什么错误的线索/上下文来提供帮助,即。这实际上是一个损坏的索引吗?或者这是我正在使用的 geocouch 版本中的一个已知错误?甚至什么样的动作会导致 not_found 错误?等等
谢谢