如何进行solr搜索,包括像( - ,& ...等)的特殊字符?

时间:2016-03-01 09:45:04

标签: solr lucene

我需要搜索一个像BEBIL1407-GREEN这样的特殊字符( - )的字符串,但它忽略了 - 并且只搜索BEBIL1407。我需要用一个洞词来搜索。我使用solr_4.5.1

示例查询:

q=BEBIL1407-GREEN&qt=select&start=0&rows=24&fq=clg%3A%222%22&fq=isAproved%3A%22Y%22&fl=id

1 个答案:

答案 0 :(得分:0)

您的问题是关于搜索BEBIL1407-GREEN但找到BEBIL1407

您没有发布您的计划或查询解析器。

作为默认solr使用standard query parser字段“text”,字段类型为“text_general”。

您可以使用solr analysis screen测试从单词(实际文本)到索引中相应标记的方式。

对于“text_general”,单词“BEBIL1407-GREEN”会转到两个标记:“bebil1407”和“green”。

标准解析器支持escaping of special characters如果您的单词以连字符(减号)开头,这将有所帮助。但在这种情况下,大多数可能的标记化器是“找到意外文档”的原因。

解决方案:

  • 您可以使用短语进行搜索。在这种情况下,"BIBIL1407-GREEN"也会找到"BIBIL1407 GREEN"
  • 您可以使用其他FieldType,例如一个WhiteSpaceTokenizer

希望这会有所帮助,否则请从schema.xml发布您的搜索字段和定义...

相关问题