我有一个内容如下的synonyms.txt文件
car accessories, gadi marmat我正在索引汽车配件作为一个单一的标记,这样它将扩展到汽车配件和gadi marmat。
我希望整个同义词能够匹配,以便在查询gadi marmat时,返回带有汽车配件的记录。
我使用shingle过滤器工厂来扩展查询,以便在搜索gadi marmat时,它将扩展到gadi、gadi marmat和marmat,并且由于gadi marmatE 220作为单个令牌被查询,它应该匹配E 121汽车配件E 222并返回结果,但情况并非如此,但当我搜索E 123汽车附件e 224时,它将返回结果。因此,必须使用具有多个单词的同义词进行索引。
请建议一下。
发布于 2012-10-12 09:08:42
同义词文件仅用于更改您正在搜索的单词。所以如果你写
汽车配件=> gadi marmat
当编译器在“汽车配件”上匹配时,它试图在"gadi marmat“上进行匹配。
它像单个令牌一样工作。
你可以得到很好的结果混合分析仪的元素,像那样。
@AnalyzerDef(name = "integram",
tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = StopFilterFactory.class, params = {
@Parameter(name = "words", value = "lucene/dictionary/stopwords.txt"),
@Parameter(name = "ignoreCase", value = "true"),
@Parameter(name = "enablePositionIncrements", value = "true")
}),
@TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = {
@Parameter(name = "language", value = "English")
}),
@TokenFilterDef(factory = SynonymFilterFactory.class, params = {
@Parameter(name = "synonyms", value = "lucene/dictionary/synonyms.txt"),
@Parameter(name = "expand", value = "false")
}),
@TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = {
@Parameter(name = "language", value = "English")
})
})https://stackoverflow.com/questions/10714720
复制相似问题