Hybris SOLR 文本、模糊、通配符和短语 自由文本查询
Hybris SOLR Text, fuzzy, wildcard and phrase Free text query
我正在尝试自定义 Hybris 搜索,禁用某些属性,例如 'manufactureName',并允许其他属性在搜索自动完成和拼写检查中工作,但是,例如:我发现有多个“属性”对于 SolrSearchQueryProperty“制造商名称”:
所有这些属性(自由文本、模糊文本、通配符和短语)是什么意思?
基于此配置,将构建 solr 查询以在 solr 上进行搜索。如果这些类型中的至少一种设置为 true,则该类型的查询将被添加到查询中。如果 multiple 设置为 true,所有都将附加到搜索查询。
一般参数
提升
使用 boost
参数,您可以将此类型的匹配配置为更好的匹配。例如,如果某些东西完全匹配,您通常希望它看起来比势均力敌时更高,因此您可以在此处添加更大的提升。
最小长度
您还有 min length
参数。这定义了在激活此类搜索之前应输入的最少字符数。您可以定义在模糊搜索激活之前,您需要至少输入 5 个字符。这是为了防止某些搜索类型 return 得到大量字符较少的结果
类型是什么意思
假设我们有一个 solr 索引,其中 manufactureName 字段有 3 个条目:test
、testing
、real test
。所有示例均针对 manufactureName 字段。
自由文本查询
这是一个完全匹配搜索。只有在 solr 索引中找到 exact 关键字时,您才会得到结果。请注意,这并不意味着它必须匹配整个值。在 real test
的情况下,solr 将 real
和 test
视为单独的关键字。如果您要搜索多个关键字,例如在“real test”上,solr 将搜索关键字“real”和关键字“test”
Solr 查询
(manufactureName_text : test)
结果
test
real test
自由文本通配符查询
顾名思义,这是一个通配符搜索。这意味着您可以输入搜索词的一部分。使用通配符类型,您可以确定通配符在搜索中的位置。你想要一个完整的通配符,还是只在最后。
具有 postFix 查询类型的 Solr 查询
(manufactureName_text : test*)
结果
test
testing
real test
自由文本模糊查询
允许在搜索中出现错误时使用模糊查询。这意味着您还将匹配具有一些错误字符的搜索关键字。 fuzzyness
因素决定了结果显示的错误程度。请注意,模糊搜索没有通配符。它的行为更像是完全匹配
Solr查询有1个字符错误
(manufactureName_text : tast∼)
结果
test
real test
自由文本短语查询
最后我们有一个文本短语搜索。对于短语搜索,我们还会考虑空格,而不仅仅是关键字。使用短语搜索,您可以输入 slop factor
。 Sloppiness 定义字符可以移动的最大位置数以仍然找到匹配项。这是为了在搜索与结果略有不同时仍能找到结果。斜率为 2 时,test real
将与 real test
匹配,因为使用 1 个位置开关,我们可以找到结果。
Solr 查询
(manufactureName_text:"real test")
结果
real test
合并
如果您激活多个搜索样式,所有这些 solr 查询部分都会附加一个 OR
。使用 boost 规则和 solr 中的计算,最匹配的项目将显示在结果列表的顶部。基本上,您可以决定允许的搜索类型,以及它们应该如何影响 returned
的结果
自由文本查询和自由文本短语查询处于活动状态的示例查询
(manufactureName_text : real) OR (manufactureName_text : test) OR (manufactureName_text:"real test")
结果
real test
test
我正在尝试自定义 Hybris 搜索,禁用某些属性,例如 'manufactureName',并允许其他属性在搜索自动完成和拼写检查中工作,但是,例如:我发现有多个“属性”对于 SolrSearchQueryProperty“制造商名称”:
所有这些属性(自由文本、模糊文本、通配符和短语)是什么意思?
基于此配置,将构建 solr 查询以在 solr 上进行搜索。如果这些类型中的至少一种设置为 true,则该类型的查询将被添加到查询中。如果 multiple 设置为 true,所有都将附加到搜索查询。
一般参数
提升
使用 boost
参数,您可以将此类型的匹配配置为更好的匹配。例如,如果某些东西完全匹配,您通常希望它看起来比势均力敌时更高,因此您可以在此处添加更大的提升。
最小长度
您还有 min length
参数。这定义了在激活此类搜索之前应输入的最少字符数。您可以定义在模糊搜索激活之前,您需要至少输入 5 个字符。这是为了防止某些搜索类型 return 得到大量字符较少的结果
类型是什么意思
假设我们有一个 solr 索引,其中 manufactureName 字段有 3 个条目:test
、testing
、real test
。所有示例均针对 manufactureName 字段。
自由文本查询
这是一个完全匹配搜索。只有在 solr 索引中找到 exact 关键字时,您才会得到结果。请注意,这并不意味着它必须匹配整个值。在 real test
的情况下,solr 将 real
和 test
视为单独的关键字。如果您要搜索多个关键字,例如在“real test”上,solr 将搜索关键字“real”和关键字“test”
Solr 查询
(manufactureName_text : test)
结果
test
real test
自由文本通配符查询
顾名思义,这是一个通配符搜索。这意味着您可以输入搜索词的一部分。使用通配符类型,您可以确定通配符在搜索中的位置。你想要一个完整的通配符,还是只在最后。
具有 postFix 查询类型的 Solr 查询
(manufactureName_text : test*)
结果
test
testing
real test
自由文本模糊查询
允许在搜索中出现错误时使用模糊查询。这意味着您还将匹配具有一些错误字符的搜索关键字。 fuzzyness
因素决定了结果显示的错误程度。请注意,模糊搜索没有通配符。它的行为更像是完全匹配
Solr查询有1个字符错误
(manufactureName_text : tast∼)
结果
test
real test
自由文本短语查询
最后我们有一个文本短语搜索。对于短语搜索,我们还会考虑空格,而不仅仅是关键字。使用短语搜索,您可以输入 slop factor
。 Sloppiness 定义字符可以移动的最大位置数以仍然找到匹配项。这是为了在搜索与结果略有不同时仍能找到结果。斜率为 2 时,test real
将与 real test
匹配,因为使用 1 个位置开关,我们可以找到结果。
Solr 查询
(manufactureName_text:"real test")
结果
real test
合并
如果您激活多个搜索样式,所有这些 solr 查询部分都会附加一个 OR
。使用 boost 规则和 solr 中的计算,最匹配的项目将显示在结果列表的顶部。基本上,您可以决定允许的搜索类型,以及它们应该如何影响 returned
自由文本查询和自由文本短语查询处于活动状态的示例查询
(manufactureName_text : real) OR (manufactureName_text : test) OR (manufactureName_text:"real test")
结果
real test
test