具有多个相似方面的 Kentico Custom Lucene Index - 如何查询?

Kentico Custom Lucene Index with multiple facets that are similar - how to query?

我创建了一个自定义索引,用于存储我用来过滤的多个额外字段。举例来说,我正在将一些方面存储为 select 风筝颜色。有些风筝只有一种颜色,有些则有多种。

风筝A颜色:深蓝红橙深红

风筝 B 颜色:蓝色

其中风筝A的颜色有深蓝、红、橙、深红。

这样的查询 +颜色:蓝色 会 return 风筝 a 和风筝 b,即使风筝 A 的颜色是深蓝色但不是蓝色。只有风筝 B 应该 returned。

我的问题是这个——我可能很难找到并回答这个问题,因为我不知道正确的术语,但是我应该如何在 lucene 中存储这些值,以便我可以分隔这些值(分隔符?) .此外,如果我搜索 color:red 它没有 return 具有值 color:"deep red" 的行?如果我要搜索颜色:(深红色)它不会 return 有 "red" 但没有 "deep red"

的行

查看搜索索引 analyzer types: search results depend on the analyzer type + search settings of the object(页面类型、自定义 table 等)。

我认为颜色字段在搜索设置中被标记为标记化,这就是它 returns 结果与字段值的单个标记(子集)相匹配的原因。如果禁用标记化,则如果字段的完整值与搜索表达式完全匹配,则仅搜索 returns 个项目。

这里有一个建议。您是否要求访问者输入颜色(我假设不是),或者您有一个过滤器列表供他们检查以进行过滤?

如果它是一个筛选器列表,那么您可能要考虑使用 "dark_blue" 作为值并使用 "dark blue" 作为显示。用于内容输入和过滤器。这样,过滤器将是 color:dark_blue.

那么你的索引可以使用 "Start width" 作为分析器类型,所以当搜索 "dark blue" 时,它会将 "dark_blue" 作为值,而 "blue" 不会return。然后,当搜索 "blue" 时,"dark_blue" 不会显示,因为它没有以 "blue..."

开头