我无法获得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
答案 0 :(得分:0)
如果您使用的是edismax,则默认情况下,sow
(在空白处分割)参数为true。这使edismax在分析之前 对其内容进行了拆分。
sow
参数在空白处分割:如果设置为false,则将在一帧中将以空格分隔的术语序列提供给文本分析,从而启用对术语序列进行操作的分析过滤器的适当功能,例如多词同义词和带状疱疹。默认值为true:对每个用空格分隔的术语分别调用文本分析。