Solr PatternTokenizerFactory不适用于短语

时间:2018-10-04 20:56:10

标签: search solr lucene solr6

我无法获得PatternTokenizerFactory一次匹配多个单词。如果我使用一个简单的表达式(例如“ ^ keyword $”)并搜索“ keyword”,它将起作用

<tokenizer class="solr.PatternTokenizerFactory" pattern="^keyword$" group="0" />

"querystring":"keyword",    
"parsedquery":"(+DisjunctionMaxQuery(((title:keyword)^2.0)))/no_coord",

但是,当我在表达式中包含空格时,它就会中断。即  我的表情是“ ^ key.word $”,我搜索“关键字”,它将不起作用

<tokenizer class="solr.PatternTokenizerFactory" pattern="^key.word$" group="0" />    

"querystring":"key word",
"parsedquery":"(+())/no_coord",

我不知道为什么这不起作用。我正在尝试匹配从一些聪明的正则表达式中构建的短语,但无法弄清楚到底是怎么回事。

我已经在多个测试器中检查了正则表达式,并且可以正常工作。任何帮助将不胜感激。

我正在使用Solr 6.1

1 个答案:

答案 0 :(得分:0)

如果您使用的是edismax,则默认情况下,sow(在空白处分割)参数为true。这使edismax在分析之前 对其内容进行了拆分。

  

sow参数

     

在空白处分割:如果设置为false,则将在一帧中将以空格分隔的术语序列提供给文本分析,从而启用对术语序列进行操作的分析过滤器的适当功能,例如多词同义词和带状疱疹。默认值为true:对每个用空格分隔的术语分别调用文本分析。