我正在开发一组同义词,您可以在其中找到一些多词表达,例如:
黑莓 => 黑莓
在分析阶段,使用 /admin/analysis.jsp 工具,我可以看到结果是正确的。
诸如“quiero una black berry”之类的查询返回以下序列:
org.apache.solr.analysis.StandardTokenizerFactory {luceneMatchVersion=LUCENE_36}:
position 1 2 3 4
term text quiero una black berry
startOffset 0 7 11 17
endOffset 6 10 16 22
type <ALPHANUM> <ALPHANUM> <ALPHANUM> <ALPHANUM>
org.apache.solr.analysis.SynonymFilterFactory {synonyms=lang/synonyms_es.txt, expand=false, ignoreCase=true, luceneMatchVersion=LUCENE_36}:
position 1 2 3
term text quiero una blackberry
type <ALPHANUM> <ALPHANUM> SYNONYM
startOffset 0 7 11
endOffset 6 10 22
但是,如果我在“真实”查询中尝试这句话,请求处理程序(edismax 处理程序的演变),标记“black”和“berry”不会被“blackberry”取代。
我在这里看到你可以通过修改 FieldQParser 插件来解决这种情况。
无论如何,由于这样的帖子是在将近 3 年前发布的,我想知道 Solr 内部是否有解决这个问题的方法,避免扩展一些插件。
谢谢。