单圆括号的Solr搜索不起作用

单圆括号的Solr搜索不起作用,solr,solr-query-syntax,Solr,Solr Query Syntax,我是新来Solr的 我试图搜索包含单圆括号'('或'')的记录 用于搜索记录的查询如下所示: q=( ( name: (*\(abc*) ) ) 上面的查询中断了solr搜索 我使用以下正则表达式转义()字符: value = value.replace(/([()])/g, '\\$1'); 有人能帮我解决这个问题吗?我对正则表达式不是很在行,所以我无法辨别那里发生了什么,但是这个solr查询应该可以: q=name:*\(abc* 不是吗 如您所见,查询中唯一要转义的字符是(.),如果

我是新来Solr的

我试图搜索包含单圆括号'('或'')的记录

用于搜索记录的查询如下所示:

q=( ( name: (*\(abc*) ) )
上面的查询中断了solr搜索

我使用以下正则表达式转义()字符:

value = value.replace(/([()])/g, '\\$1');

有人能帮我解决这个问题吗?

我对正则表达式不是很在行,所以我无法辨别那里发生了什么,但是这个solr查询应该可以:

q=name:*\(abc*
不是吗


如您所见,查询中唯一要转义的字符是(.),如果您搜索它,也需要转义。但我理解在您的示例中,所有的(或全部)都只是语言的一部分。

我对正则表达式不是很在行,因此我无法辨别那里发生了什么,但是这个solr查询应该可以工作:

q=name:*\(abc*
不是吗


如您所见,查询中唯一要转义的字符是(.),如果您搜索它,也需要转义。但我理解在您的示例中,所有的(或全部)都只是语言的一部分。

基本上是查找带括号的contains查询。您所说的“中断solr搜索”是什么意思?崩溃,错误,零命中?@pessimonium建议的查询没有问题,因此您的问题可能是您的分析器删除了括号。通过执行
name:known\)word
搜索,然后执行
name:known\)word*
来检查这一点。如果最后一个没有命中,您的分析器可能会删除
。您也可以通过GUI中的分析来完成,这将告诉您更多信息(并且可能会更加混乱)。正如我从您的问题中了解到的,您只需要“(”或“)”,而不需要两者兼而有之。以下查询将用于以下目的:
name:*\(*或name:*\)*而不是name:*\(*\)*
基本上是查找带括号的contains查询。您所说的“中断solr搜索”是什么意思?崩溃,错误,零命中?@pessimonium建议的查询没有问题,因此您的问题可能是您的分析器删除了括号。通过执行
name:known\)word
搜索,然后执行
name:known\)word*
来检查这一点。如果最后一个没有命中,您的分析器可能会删除
。您也可以通过GUI中的分析来完成,这将告诉您更多信息(并且可能会更加混乱)。正如我从您的问题中了解到的,您只需要“(”或“)”,而不需要两者兼而有之。以下查询将用于以下目的:
name:*\(*或name:*\)*而不是name:*\(*\)*