search - Solr PatternTokenizerFactory 不适用于短语
问题描述
我无法让 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
解决方案
如果您使用 edismax,则sow
(split on whitespace) 参数默认为 true。这使得 edismax在运行分析之前拆分内容。
sow
参数_Split on whitespace:如果设置为 false,将一次性将空格分隔的术语序列提供给文本分析,从而启用对术语序列进行操作的分析过滤器的正确功能,例如多词同义词和 shingles。默认为 true:为每个单独的空格分隔的术语单独调用文本分析。
推荐阅读
- ios - “在范围内找不到'RealmProperty'”尝试使用可选双精度,Swift
- java - opencsv:如何强制引用一列
- xml - CAPL 如何在 FDX 描述文件 XML 中定义 envVar
- asp.net-core - XmlException: '.',十六进制值 0x00,是无效字符。第 1 行,位置 1
- javascript - 如何使用 reactjs 使用博客 API 按标签检索博客文章
- javascript - 使用 webpack 和 electron-forge 构建电子应用程序时路径中断
- php - 如何在 PHP 中的 sql 准备语句中将一个变量绑定到 2 个参数
- r - 带有数据框的列表列表
- lightroom - 如何将一堆图片移动到 Lightroom Classic 中的新根文件夹?
- image - 如何通过检查网站元素来断定网站不接受上传?