提升 Kentico 智能搜索结果相关范围
Boosting Kentico smart search results relevance scope
我使用 Kentico 智能搜索。
我想提高智能搜索结果的相关范围。
我阅读了这个 article,它描述了如何使用 bool 字段来做到这一点。
根据文章,我必须在 Kentico 页面中创建一个 bool 列,然后设置到智能搜索控件的 Search condition
字段,此代码:
columnname:(true)^3
如果所需页面包含此列且其值为 true
,则此页面相关性将增加。
有效。
现在我想对整数列执行相同的操作。我想在此列中保留一个可以增加相关性的系数。
我知道 Kentico 使用我以前从未使用过的 Apache Lucene 搜索引擎。我找到了一些示例,并建议我必须像这样设置 Search condition
字段:
columnname:(0)^0 columnname:(1)^1 columnname:(2)^2
我希望搜索结果相关范围会根据 columnname
的值增加。
没用。
如果可能,我必须使用哪种语法来实现我的目标
Kentico 默认以特殊格式存储整数。因此,您需要在构建查询时将整数转换为这种格式。假设您在代码中构建查询,您可以使用 Kentico 的辅助方法 SearchValueConverter.IntToString(id)
来完成此操作,其中 id
引用您的整数值。此代码未经测试,但您需要类似以下内容:
string.Format(
"columnname:({0})^0 columnname:({1})^1 columnname:({2})^2",
SearchValueConverter.IntToString(id1),
SearchValueConverter.IntToString(id2),
SearchValueConverter.IntToString(id3))
如果理解正确,您想根据单列值进行提升
所以每个文档都包含提升值列(或它们的权重)
- 如果列值 =0 -> 提升 0
- 如果列值 =1 -> 提升 1
- 如果列值 =2 -> 提升 2
基本上每个文档都包含它的权重(提升)值吧?尝试这样的事情(假设 columnname 是 lucene 索引中的列名和您的文档类型):
columnname:(int){%columname%}^{%columname%}
我不确定您的体系结构,但在这种情况下,您可以简单地创建一个排序(这是您的提升列)列并按此排序列对结果进行排序吗?
它们将按排序列排序,然后按
内的相关性排序
我使用 Kentico 智能搜索。
我想提高智能搜索结果的相关范围。
我阅读了这个 article,它描述了如何使用 bool 字段来做到这一点。
根据文章,我必须在 Kentico 页面中创建一个 bool 列,然后设置到智能搜索控件的 Search condition
字段,此代码:
columnname:(true)^3
如果所需页面包含此列且其值为 true
,则此页面相关性将增加。
有效。
现在我想对整数列执行相同的操作。我想在此列中保留一个可以增加相关性的系数。
我知道 Kentico 使用我以前从未使用过的 Apache Lucene 搜索引擎。我找到了一些示例,并建议我必须像这样设置 Search condition
字段:
columnname:(0)^0 columnname:(1)^1 columnname:(2)^2
我希望搜索结果相关范围会根据 columnname
的值增加。
没用。
如果可能,我必须使用哪种语法来实现我的目标
Kentico 默认以特殊格式存储整数。因此,您需要在构建查询时将整数转换为这种格式。假设您在代码中构建查询,您可以使用 Kentico 的辅助方法 SearchValueConverter.IntToString(id)
来完成此操作,其中 id
引用您的整数值。此代码未经测试,但您需要类似以下内容:
string.Format(
"columnname:({0})^0 columnname:({1})^1 columnname:({2})^2",
SearchValueConverter.IntToString(id1),
SearchValueConverter.IntToString(id2),
SearchValueConverter.IntToString(id3))
如果理解正确,您想根据单列值进行提升 所以每个文档都包含提升值列(或它们的权重)
- 如果列值 =0 -> 提升 0
- 如果列值 =1 -> 提升 1
- 如果列值 =2 -> 提升 2
基本上每个文档都包含它的权重(提升)值吧?尝试这样的事情(假设 columnname 是 lucene 索引中的列名和您的文档类型):
columnname:(int){%columname%}^{%columname%}
我不确定您的体系结构,但在这种情况下,您可以简单地创建一个排序(这是您的提升列)列并按此排序列对结果进行排序吗? 它们将按排序列排序,然后按
内的相关性排序