2017-07-03 114 views
0

我试图执行不区分大小写的搜索到我的titlecontent 字段,但无济于事。我尝试了以下方法:Solr小写不工作

<filter class="solr.LowerCaseFilterFactory" />添加到'text_general'字段类型schema.xml/managed-schema.xml,以'索引'和'分析'标记化器。

enter image description here

我的标题和内容领域都将被 'text_general' 类型的。 enter image description here

我试图寻找以下:

  • *abc*:出现 'ABC' 的没有结果
  • *ABC*:只有 'ABC' 显示的搜索结果。

这清楚地表明小写字母过滤器不起作用。下面还粘贴了第一个查询的调试结果。

enter image description here

而且下面是标题字段的屏幕截图分析样品文本时。输出似乎没问题,但搜索不按预期工作。这是一个搜索查询问题吗?

enter image description here

感谢先进的任何帮助!

+0

如果你改变现有的模式,那么你必须重新索引 –

+0

@AshrafulIslam嗨,是啊重新索引和重新启动solr实例。我甚至重新创建了新的内核来测试。 – codeandfootball

回答

0

不,它并没有清楚地表明小写过滤不起作用 - 您遇到的是most filters or tokenizers aren't applied when you're doing a wildcard search(因为它们实际上无法用于通配符搜索的干净地方,因为它们没有整个任期)。

如果您想要执行通配的小写搜索,则解决方案是在实际编制索引之前对字段进行压缩或处理,并根据需要仅使用分词器分割文本(其中LowercaseTokenizer似乎是the only one that is a MultiTermAwareComponent)。否则,如果您不想执行字符串的任何标记或拆分,请使用string字段。

您可以使用您自己的代码将内容发送到Solr或in an update processor