我正在寻找弹性搜索中的过滤器,它可以让我将英语复合词分解为它们的组成部分,例如eyewitness
,eye witness
和eyewitness
这样的术语查询将匹配eyewitness
。我注意到了compound word过滤器,但这需要明确定义一个单词列表,这是我自己无法想到的。
答案 0 :(得分:3)
首先,你需要问自己是否真的需要打破复合词。考虑一种更简单的方法,例如使用"edge n-grams"命中前导或后沿。它会产生松散地打击像“ey”这样的碎片的副作用,但也许这对你的情况是可以接受的。
如果你确实需要打破化合物,并希望明确索引单词片段,那么你需要获得一个单词列表。您可以下载英文单词列表one example is here。字典单词列表用于知道复合单词的哪些片段实际上是单词本身。这会增加索引的开销,所以一定要测试它。显示用法的示例是here。
如果您的文字是德语,请考虑https://github.com/jprante/elasticsearch-analysis-decompound