CouchDB提供了从startkey搜索值的机会,以及精确的键值对等 但有没有办法在指定的字段中搜索子字符串?
问题是这样的。我们的新闻数据库包含大约40,000个新闻文件。比如说,他们有title
,content
和url
字段。我们想找到title
中有“餐馆”的新闻文件。有没有办法做到这一点?
View Collation wiki页面什么都没说:(对我来说似乎很奇怪,没有工具来处理这个问题,我只能用Python,PHP或其他方式解析JSON结果。在MySQL中它是只需LOCATE()函数..
答案 0 :(得分:6)
答案 1 :(得分:4)
这里要小心。 Lucene并不总是最好的答案。
如果您只搜索一个有限的字段并且只搜索像餐馆这样的单词那么lucene实际上是用来标记大型文本/文档可能会有点矫枉过正,您可以通过拆分标题获得相同的效果。
function(doc){
var stringarray = doc.title.split(" ");
for(var idx in stringarray)
emit(stringarray[idx],doc);
}
Lucene和Couchdb也不支持子字符串搜索,其中字符串不在单词的开头。