solr“ - ”在某些情况下不起作用,适用于某些情况

时间:2013-10-14 08:38:40

标签: java solr

我遇到一个问题,我有两个字符串“t-150”和“w-elksrc”。索引后,我提出以下查询: -

查询1:q=name:t-*&facet.query=t-&qt=autocomplete-identifier&hl=true&hl.fl=name&hl.ptc=true

查询2:q=name:w-*&facet.query=w-&qt=autocomplete-identifier&hl=true&hl.fl=name&hl.ptc=true

查询1我们给我“t-150”。但是查询2返回“”(空白)。当我从查询2中删除破折号并放置空格和字符,这意味着“w e”然后我得到结果。

我使用ClassicTokenizerFactoryWordDelimiterFilterFactoryLowerCaseFilterFactory以及查询时WhitespaceTokenizerFactoryLowerCaseFilterFactory的索引时间字段名称具有“文字”类型。

谢谢!

1 个答案:

答案 0 :(得分:1)

ClassicTokenizerFactory按以下方式处理流 -

  

单词用连字符分开,除非单词中有数字,在这种情况下,标记不会被分割,数字和连字符会被保留。

因此,根据文档,您的输入“t-150”将保留为t-150,因为它有一个数字。但输入“w-elkscr”将分为两个标记,即welkscr