如何使lucene分析仪更严格?

时间:2014-08-04 12:36:40

标签: java lucene

我有名字的自定义lucene analyzer。 我大部分时间都得到了正确的匹配,但我想阻止返回的结果是"不那么接近"匹配。

示例:

查询:Art Inn Hotel Essen

结果之一:Hotel Garni an der Eissporthalle,得分:7.6011443

我想阻止这个"结果",即使它不是最顶级的,但它仍然是不合适的。这可能吗?

我使用以下匹配器:

public class MyAnalyzer {
    @Override
    protected TokenStreamComponents createComponents(String fieldName, java.io.Reader reader) {
        VERSION = Version.LUCENE_4_9;
        final Tokenizer source = new StandardTokenizer(VERSION, reader);
        TokenStream result = new StandardFilter(VERSION, source);
        result = new LowerCaseFilter(VERSION, result);
        result = new ASCIIFoldingFilter(result);
        return new TokenStreamComponents(source, result);
    }
}

BooleanQuery q = new BooleanQuery();
q.add(new QueryParser(VERSION, "name", new MyAnalyzer()).parse(name), Occur.MUST);

我也想知道:为什么结果会匹配?因为在它们中出现的唯一术语是字符串Hotel

0 个答案:

没有答案