Solr 使用同义词的错误行为
我在使用同义词(Lucene 4.6.1)时遇到问题。这些是我的配置文件和测试用例 同义词过滤器工厂配置。Solr 使用同义词的错误行为,solr,lucene,synonym,Solr,Lucene,Synonym,我在使用同义词(Lucene 4.6.1)时遇到问题。这些是我的配置文件和测试用例 同义词过滤器工厂配置。 Map<String,String> initialParams = Maps.newHashMap(); initialParams.put("synonyms","synonym.txt"); initialParams.put("ignoreCase","true"); initialParams.put("expand","true"); initialParams.p
Map<String,String> initialParams = Maps.newHashMap();
initialParams.put("synonyms","synonym.txt");
initialParams.put("ignoreCase","true");
initialParams.put("expand","true");
initialParams.put("format","solr");
initialParams.put("luceneMatchVersion",Version.LUCENE_40.toString());
SynonymFilterFactory synonymFilterFactory = new SynonymFilterFactory(initialParams);
文本的测试用例#1
Text #1: The american League is on fire.
//阳性病例(全部工作正常)
//阴性案例(工作罚款)
//不起作用
Assert.assertFalse(LuceneUtil.evaluate(t1, "\"al capone\""));
虽然我试图创建一个短语查询“al-capone”,但lucene似乎是在用两个术语al或capone进行查询
但同义词列表并没有出现,因为“卡西厄斯·克莱”和“卡西厄斯·其他词”并不匹配
文本的测试用例#2
//工作
Text #2: Muhammad ali is the best
Assert.assertFalse(LuceneUtil.evaluate(t2, "\"Cassius other words\""));
有什么想法吗 LuceneUtil.evaluate是做什么的?它只创建查询解析器并执行搜索。索引和解析器都使用相同的分析器。返回memoryIndex.search(parser.parse(escapedKeywords))>0.0f
Assert.assertFalse(LuceneUtil.evaluate(t1, "a.l.s"));
Assert.assertFalse(LuceneUtil.evaluate(t1, "a/l/s"));
Assert.assertFalse(LuceneUtil.evaluate(t1, "\"al capone\""));
Text #2: Muhammad ali is the best
Assert.assertFalse(LuceneUtil.evaluate(t2, "\"Cassius other words\""));