Lucene Cloudant:如何在文本字段上执行通配符搜索
我在cloudant中有一个db,看起来像这样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":
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
希望这有帮助