我遇到一个问题,我有两个字符串“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”然后我得到结果。
我使用ClassicTokenizerFactory
,WordDelimiterFilterFactory
,LowerCaseFilterFactory
以及查询时WhitespaceTokenizerFactory
,LowerCaseFilterFactory
的索引时间字段名称具有“文字”类型。
谢谢!
答案 0 :(得分:1)
ClassicTokenizerFactory
按以下方式处理流 -
单词用连字符分开,除非单词中有数字,在这种情况下,标记不会被分割,数字和连字符会被保留。
因此,根据文档,您的输入“t-150”将保留为t-150
,因为它有一个数字。但输入“w-elkscr”将分为两个标记,即w
和elkscr
。