我有一个$text-Index和这样的元素的mongodb :
{
foo: "my super cool item"
}
{
foo: "your not so cool item"
}
Run Code Online (Sandbox Code Playgroud)
如果我搜索
mycoll.find({ $text: { $search: "super"} })
Run Code Online (Sandbox Code Playgroud)
我得到第一项(正确).
但我也想用"uper"搜索获得第一项 - 但如果我尝试:
mycoll.find({ $text: { $search: "uper"} })
Run Code Online (Sandbox Code Playgroud)
我没有得到任何结果.
我的问题:如果有一种方法可以使用$ text,那么它会找到搜索字符串的一部分?(例如像'%uper%'在mysql)
注意:我不要求只进行正则表达式搜索 - 我要求在$ text-search中进行正则表达式搜索!
我有对象User具有属性Name和Surname.我希望使用一个查询在这些字段中搜索,我在文档中找到了multi_match,但我不知道如何正确使用它与通配符.可能吗?
我尝试使用multi_match查询,但它不起作用:
{
"query": {
"multi_match": {
"query": "*mar*",
"fields": [
"user.name",
"user.surname"
]
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想获得一个带有通配符的搜索模式的文件名列表.喜欢:
getFilenames.py c:\PathToFolder\*
getFilenames.py c:\PathToFolder\FileType*.txt
getFilenames.py c:\PathToFolder\FileTypeA.txt
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我知道这是一个非常基本的问题,我想我知道答案......但我想证实.
这些查询真的相同吗?
SELECT * FROM FOO WHERE BAR LIKE 'X'
SELECT * FROM FOO WHERE BAR ='X'
Run Code Online (Sandbox Code Playgroud)
也许在使用没有外卡的情况下会有性能开销?
我有一个可选择使用LIKE和外卡的应用程序.SP目前做类似的并附加外卡 - 我想只是更新查询使用,但让应用程序根据需要附加外卡.
因为我认为这应该是一个基本问题,我知道这个问题可能已被提出,但我无法找到它.我可能要获得我的同伴压力徽章,但无论如何我都会问:
在使用IN时,在SQL Server中是否有一种我不知道使用通配符%的方法.
我意识到我可以使用OR之类的:
select *
from jobdetails
where job_no like '0711%' or job_no like '0712%'
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我可以使用子查询,如:
select *
from jobdetails
where job_no in (select job_no from jobs where job_id = 39)
Run Code Online (Sandbox Code Playgroud)
但我希望做以下事情:
select *
from jobdetails
where job_no in ('0711%', '0712%')
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它使用百分号作为字符而不是通配符,因此不返回任何行.我现在只需要使用一堆OR,但我知道必须有更好的方法.你用什么方法呢?
我需要一个java中的比较器,它与sql'like'运算符具有相同的语义.例如:
myComparator.like("digital","%ital%");
myComparator.like("digital","%gi?a%");
myComparator.like("digital","digi%");
Run Code Online (Sandbox Code Playgroud)
应评估为真,并且
myComparator.like("digital","%cam%");
myComparator.like("digital","tal%");
Run Code Online (Sandbox Code Playgroud)
应评估为假.任何想法如何实现这样的比较器或任何人都知道具有相同语义的实现?可以使用正则表达式完成吗?
我想知道是否可以使用LINQ进行通配符搜索.
我看到LINQ有Contains,StartsWith,EndsWith等.
如果我需要像%Test这样的%if%work%,我该怎么办?
问候
如何使用通配符识别字符串?
我发现了glob2rx,但我不太明白如何使用它.我尝试使用以下代码来选择以单词开头的数据框行blue:
# make data frame
a <- data.frame( x = c('red','blue1','blue2', 'red2'))
# 1
result <- subset(a, x == glob2rx("blue*") )
# 2
test = ls(pattern = glob2rx("blue*"))
result2 <- subset(a, x == test )
# 3
result3 <- subset(a, x == pattern("blue*") )
Run Code Online (Sandbox Code Playgroud)
但是,这些都没有奏效.我不确定我是否应该使用不同的功能来尝试这样做.
例如,我有一堆带有公共前缀和后缀的值,例如:
fooVal1Bar;
fooVal2Bar;
fooVal3Bar;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,所有变量名称的开头和结尾都foo以及结束Bar.我想用一个查找和使用之间找到了随机变量名称替换foo和Bar.说我已经有变量Val1,Val2,Val3,和Val1Old,Val2Old和Val3Old定义.我会找到一个替代品,类似于:
:%s/foo<AnyString>Bar/foo<AnyString>Bar = <AnyString> + <AnyString>Old
Run Code Online (Sandbox Code Playgroud)
这将导致:
fooVal1Bar = Val1 + Val1Old;
fooVal2Bar = Val2 + Val2Old;
fooVal3Bar = Val3 + Val3Old;
Run Code Online (Sandbox Code Playgroud)
我希望很明显我想做什么,我在vim帮助或网上找不到任何关于用通配符字符串替换的东西.我能找到的最多的是搜索通配符字符串.
我的Makefile中的一条规则将整个目录(res/)压缩为ZIP文件.显然,当目录下的任何文件res/发生更改时,需要执行此规则.因此,我希望规则将该目录下的所有文件作为先决条件.我该如何实施这条规则?
在启用了globstar选项的 Bash中,您可以使用通配符模式获取该目录中所有文件的列表res/**/*.但是,如果将其指定为Makefile中的先决条件,它似乎不起作用:
filename.jar: res/**/*
Run Code Online (Sandbox Code Playgroud)
即使在touch输入文件后res/,仍然可以生成报告
make: `filename.jar' is up to date.
Run Code Online (Sandbox Code Playgroud)
很明显它没有认识到这种模式.
如果我将目录本身声明为先决条件:
filename.jar: res
Run Code Online (Sandbox Code Playgroud)
然后在修改文件时不会重新执行Make(我认为make只查看目录本身的修改日期,只有在添加,删除或重命名直接子项时才会更改).