我有SOLR设置。
我想搜索其中包含T
或private <S> void logIf(Predicate<S> p, S t, PersonId id, String message) {
if (p.test(t)) {
logMap.put(id, message);
}
}
的所有文档。
我试过了
[
但它会返回我的数据库中的所有文件。
尝试
]
但它给了
nk_title:"\["
我也试过
nk_title:[*
但是返回空结果。
答案 0 :(得分:1)
要搜索[
,请确保在创建查询时使用\
转义它。给定一个title
字段定义为string
的集合,其中包含三个文档:
{
"id":"doc1",
"title":"This is a title",
"_version_":1602438086510247936
},
{
"id":"doc2",
"title":"[This is a title",
"_version_":1602438093178142720
},
{
"id":"doc3",
"title":"This is [a title",
"_version_":1602438101227012096
}
查询title:[*
会将doc2
作为点击:
{"numFound":1,"start":0,"docs":[{
"id":"doc2",
"title":"[This is a title",
"_version_":1602438093178142720}]}
双方的通配符按预期工作(title:*\[*
):
"response":{"numFound":2,"start":0,"docs":[
{
"id":"doc2",
"title":"[This is a title",
"_version_":1602438093178142720},
{
"id":"doc3",
"title":"This is [a title",
"_version_":1602438101227012096}]
}}