Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 有人能帮我理解这种情况下的Solr搜索行为吗?_Search_Solr_Schema - Fatal编程技术网

Search 有人能帮我理解这种情况下的Solr搜索行为吗?

Search 有人能帮我理解这种情况下的Solr搜索行为吗?,search,solr,schema,Search,Solr,Schema,查询如下:-(请参阅) 索引字段具有与上述输入查询中完全相同的标记。但Solr搜索结果为零。 如果查询是这样的:-(请参阅 然后我可以在结果中找到文档 附言:我能够得到(Pro),Profi,Profise等查询的文档结果。 这里是附加的图片 首先,下次请在你的问题中包含相关细节,因为图像很难搜索,很难获得你问题的概述,而且对于那些视力不好的人来说很难阅读 对于您的实际问题,问题是您有一个空白标记符。这只会打断空白上的单词,例如。索引文档包含您的术语(foo),这意味着只有(foo)匹配(因

查询如下:-(请参阅) 索引字段具有与上述输入查询中完全相同的标记。但Solr搜索结果为零。 如果查询是这样的:-(请参阅 然后我可以在结果中找到文档

附言:我能够得到(Pro),Profi,Profise等查询的文档结果。 这里是附加的图片


首先,下次请在你的问题中包含相关细节,因为图像很难搜索,很难获得你问题的概述,而且对于那些视力不好的人来说很难阅读

对于您的实际问题,问题是您有一个空白标记符。这只会打断空白上的单词,例如
。索引文档包含您的术语
(foo)
,这意味着只有
(foo)
匹配(因为标记符只打断空白,
不是空白)

foo(bar)
将被索引为两个标记,
foo
(bar)
。搜索
(bar
将不匹配


使用StandardTokenizer获得您想要的行为,或者使用WordDelimiterGraphFilterFactory将单词分解为更多的标记。

您可以在问题中包含
debug.parsedQuery
值的输出吗?我还想知道您使用的
debug.QParser
解析代码是什么。请不要将代码作为im发布年龄。您希望我们如何更正或对其进行注释?请在您的问题中的代码框中包含代码。感谢您的输入。下次将尝试发布一个干净的问题。至于当前问题,我知道
foo(bar)
将被索引为
foo
(bar)
,在我的情况下,
(bar)
(或
(b
(ba
)正在搜索中提供所需的文档,而
(条形)
没有提供所需的结果。我需要将令牌捕获为
(条形)
本身,这就是为什么要使用WhitespaceTokenizer。这是由
EdgeNgramFilter
和您附加的词干过滤器造成的。如果您不希望出现这种行为,请删除它们(我错过了您问题的这一部分,因为图像中有文本,不知道应该查找什么)我需要有
EdgeNgramFilter
,以便
(b
(ba
(bar
(bar)
可以与输入查询匹配,并且我还需要考虑特殊字符,如
@
等,这就是为什么我需要
空白标记符的原因。尽管如此,当输入的查询是
(bar)时,我仍然看不到这种特殊情况的结果
但得到0个结果。请帮助!您是否正确地转义了
-s)?请记住
在Lucene查询语法中有特殊意义(即字段1:(val1和val2),其中
不被视为查询的一部分。您可以通过在这些字符前面加\来转义它们。感谢@MatsLindh的响应。因此,根据您的回答,我已经实现了这个标记器
,而不是
空白标记器
,但我仍然得到相同的响应。您能指导我实现一个标记器,以便正确转义括号?(还要注意,我的solr版本是5.2.1)