我需要搜索一个像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
答案 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"
希望这会有所帮助,否则请从schema.xml发布您的搜索字段和定义...