solr - 按查询对 SOLR 结果进行排名
问题描述
我有一个 SOLR DIH-conig.xml (dataimporter) 有多个查询,在 Oracle 11 中查询不同的表(或视图)。
我只是希望 SOLR 先从一个特定查询返回结果,然后再从其他查询返回结果。
我应该如何在 DIH-config.xml 中配置它?
谢谢。
问候,埃里克
解决方案
您不能data-config.xml
以任何方式对其进行配置 - Solr 返回的内容基于索引中的内容。数据导入处理程序仅将数据导入 Solr,SQL 查询不用于将数据导入 Solr 之外的任何操作。
但是,您可以通过使用从每个查询返回的具有静态值的特殊字段来解决此问题,从而有效地识别文档是从哪个查询导入的。
在您的 SQL 查询中,添加一个别名字段名称作为文档的优先级:
SELECT ..., 1000 AS priority FROM ...
在第二个查询中,执行相同的操作,但使用更高的优先级值:
SELECT ..., 2000 AS priority FROM ...
priority
如果您没有在无模式模式下运行,这需要定义一个名为 first 的长整型字段。
查询 Solr 时,将此值用作第一个排序条件 ( sort=priority, score
)。这将首先给出第一个查询中的所有文档,内部按分数排序,然后是最后一个查询,内部也按分数排序。
推荐阅读
- java - 我被困在一个 Java 项目上,我的 if 语句中的所有场景都在不断计算
- typescript - 使用变量制作 GraphQL 服务器的问题(参数与变量)
- xml - 使用 XSLT (v1.0) 在 DATE 中添加 2 天
- wordpress - 在带有远程 ssh fs 的 vscode 和实时 sass 编译器上找不到要读取的文件
- flutter - 如何在颤动评分栏中保存用户评分?
- c# - 如何在 .NET Core 3.1 的子线程中设置主线程 CultureInfo.CurrentUICulture 的值?
- r - 使用 tidyverse 清理排名选择调查
- python - 使用 Json 内容抓取网站会导致值错误
- javascript - 移动设备与桌面上的幻灯片显示不正确
- django - Django DRF - api webview中的“隐藏用户”(必填字段)