2

让我们假设我有标题字段(文本类型),其值为“冰块”。因此它将被索引为“冰”和“立方体”两个标记。现在,如果我搜索“icecubes”,则找不到任何结果,因为“icecubes”既不匹配令牌“ice”也不匹配“cubes”。

反之亦然。那么我应该如何处理这种情况。solr 有什么功能可以管理这个吗?

4

1 回答 1

1

您可以将 asolr.WordDelimiterFilterFactory与选项一起使用catenateAll="1"。这将导致所有子词部分被连接。例子:

"wi-fi-4000" => "wifi4000"

这将解决您的问题。

关于反之亦然,您可以在同一过滤器上使用generateWordParts="1"splitOnCaseChange="1"以及可能)选项。splitOnNumerics="1"这会导致生成部分单词。例子:

"PowerShot" => "Power" "Shot" (if splitOnCaseChange=1)
"Power-Shot" => "Power" "Shot"

但是您需要这些单词至少是驼峰式,否则 Solr 无法理解在哪里拆分单词。

preserveOriginal="1"如果您希望您的原始作品也按原样进行标记,请记住设置。

于 2013-08-14T09:39:34.707 回答