我在cloudant中有一个看起来像这样的数据库
count word
4 a
1 a boy
1 a boy goes
我想运行像这样的查询
word: *boy*
我如何在cloudant中执行此操作?我试过以下但是没有用
{
"selector": {
"word": "*boy*"
},
"fields": [
],
"sort": [
{
"_id": "asc"
}
]
}
答案 0 :(得分:2)
您可以使用$regex
condition operator。
{
"selector": {
"word": {
"$regex": "boy"
}
},
"fields": [
],
"sort": [
{
"_id": "asc"
}
]
}
来自doc:
与文档字段匹配的正则表达式模式。仅当字段为字符串值并与提供的正则表达式匹配时才匹配。
因为正则表达式不适用于索引,所以如果您的数据集相当大,则应考虑使用Cloudant Search而不是Cloudant Query。
创建一个设计文档,用于定义word
文档属性的索引:
{
"_id": "_design/search_example",
"indexes": {
"word": {
"index": "function(doc){if (doc.word) {index('word', doc.word, {'store': true});}}"
}
}
}
运行搜索:
GET https://$HOST/$DATABASE/_design/search_example/_search/word?q=word:boy HTTP/1.1
结果将包含word
文档属性中包含指定字符串的所有文档。要返回文档,请使用?q=word:boy&include_docs=true
希望这有帮助!