我正在使用 Porter Stemmer 来阻止单词,这是我遇到的一个问题:
单词“mortgage”正确地词根为“mortgag” 词“mortgagee”(可以说是错误地)词根为“mortgage”
大约有 100 个文档带有“mortgage”一词 有 1 个文档带有“mortgagee”一词
当我在没有将“mortgagee”放入任何文档的情况下构建索引时,一切正常:搜索“mortgage”或“mortgages”或“mortgag”会返回所有 100 个文档。
当我建立一个索引并且其中一个文档包含“mortgagee”时,在索引中搜索“mortgagee”只会返回一个带有“mortgagee”的文档(它被归结为“mortgagee”)。但是,搜索“mortgag”或“mortgages”会返回所有 100 个文档。
我可以从这个问题中得出的唯一合乎逻辑的结论是 lucene 首先搜索词干词,如果没有找到任何结果,它会继续搜索词干词。因此,在搜索“mortgage”时,它首先找到源自“mortgagee”的“mortgage”并停止搜索。这是正确的行为,还是错误?