Lucene Cloudant:如何在文本字段上执行通配符搜索

Lucene Cloudant:如何在文本字段上执行通配符搜索,lucene,wildcard,cloudant,python-cloudant,Lucene,Wildcard,Cloudant,Python Cloudant,我在cloudant中有一个db,看起来像这样 count word 4 a 1 a boy 1 a boy goes 我想运行这样的查询 count word 4 a 1 a boy 1 a boy goes word:*男孩* 我如何在cloudant中实现这一点?我尝试了以下方法,但不起作用 { "selector": { "word": "*boy*" }, "fields":

我在cloudant中有一个db,看起来像这样

count word

4     a         
1     a boy
1     a boy goes
我想运行这样的查询

count word

4     a         
1     a boy
1     a boy goes
word:*男孩*

我如何在cloudant中实现这一点?我尝试了以下方法,但不起作用

{
  "selector": {
    "word": "*boy*"
  },
  "fields": [

  ],
  "sort": [
    {
      "_id": "asc"
    }
  ]
}

您可以使用
$regex

从文档:

与文档字段匹配的正则表达式模式。仅当字段为字符串值且与提供的正则表达式匹配时匹配

因为正则表达式不适用于索引,如果数据集相当大,则应该考虑使用而不是CyrOrthQueq。

创建一个设计文档,定义
word
document属性的索引:

{
 "_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
document属性中包含指定字符串的所有文档。要返回文档,请使用
?q=word:boy&include\u docs=true


希望这有帮助

您可以使用
$regex

从文档:

与文档字段匹配的正则表达式模式。仅当字段为字符串值且与提供的正则表达式匹配时匹配

因为正则表达式不适用于索引,如果数据集相当大,则应该考虑使用而不是CyrOrthQueq。

创建一个设计文档,定义
word
document属性的索引:

{
 "_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
document属性中包含指定字符串的所有文档。要返回文档,请使用
?q=word:boy&include\u docs=true

希望这有帮助