elasticsearch - 打破英语复合词?

时间:2014-07-28 04:47:30

标签: elasticsearch

我正在寻找弹性搜索中的过滤器,它可以让我将英语复合词分解为它们的组成部分,例如eyewitnesseye witnesseyewitness这样的术语查询将匹配eyewitness。我注意到了compound word过滤器,但这需要明确定义一个单词列表,这是我自己无法想到的。

1 个答案:

答案 0 :(得分:3)

首先,你需要问自己是否真的需要打破复合词。考虑一种更简单的方法,例如使用"edge n-grams"命中前导或后沿。它会产生松散地打击像“ey”这样的碎片的副作用,但也许这对你的情况是可以接受的。

如果你确实需要打破化合物,并希望明确索引单词片段,那么你需要获得一个单词列表。您可以下载英文单词列表one example is here。字典单词列表用于知道复合单词的哪些片段实际上是单词本身。这会增加索引的开销,所以一定要测试它。显示用法的示例是here

如果您的文字是德语,请考虑https://github.com/jprante/elasticsearch-analysis-decompound