mysql - Solr 多重排序结果,但第一个高级(真实)帖子

标签 mysql solr

我已经开始学习 Solr,并尝试理解和实现与我在 mysql 中所做的查询相同的查询,以便以相同的顺序和逻辑返回结果。

我需要什么:

  • 总是首先返回标记为高级(bool,true)的帖子,然后返回其他
  • 按创建日期对所有内容进行排序/排序 new > old..

默认 mysql 示例查询/不带搜索参数:

SELECT 
  * 
FROM 
  postings Postings 
  // LEFT JOIN query ..
WHERE 
  (
    // where query..
  ) 
ORDER BY 
  Postings.premium DESC, // <--- bool (1), 
  FIELD(Postings.source, "local") DESC, 
  Postings.cpc DESC 

和带有搜索参数的示例:

SELECT 
  MATCH (Postings.title) AGAINST ('developer' IN BOOLEAN MODE) AS `Postings__relavance_title`, 
  MATCH (Postings.description) AGAINST ('developer' IN BOOLEAN MODE) AS `Postings__relavance_description`, 
  // other Fields 
FROM 
  postings Postings 
  // LEFT JOIN queries ...
WHERE 
  (
    MATCH (
      Postings.title, Postings.description
    ) AGAINST ('developer' IN BOOLEAN MODE) 
  ) 
ORDER BY 
  (Postings__relavance_title * 2)+ Postings__relavance_description DESC, 
  Postings.premium DESC, // <--- bool (1)
  FIELD(Postings.source, "local") DESC, 
  Postings.cpc DESC

如何以相同的方式对 solr 数据进行排序/排序?

最佳答案

这是我们任务的解决方案:

我们必须:

选择字段,例如:

fl=score,*

提升查询字段,例如:

bq=source:local^50 (premium:true^100 OR premium:false^0)

按分数排序:

sort=score DESC, created DESC

solr 架构中:

<field name="premium" type="boolean" indexed="true" stored="true"/>

关于mysql - Solr 多重排序结果,但第一个高级(真实)帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50905970/

相关文章:

Solr 建议者重复建议

mysql - Sonar 检查 https ://analysis. apache/system 处的配置

mysql - 将 Go 的零 time.Time 值插入 MySQL DATETIME 列错误

java - Solr 和 JVM 内存管理问题

ruby-on-rails - Rails 应用程序:Solr 抛出 RSolr::Error::Http - 执行搜索时未找到 404

Solr 和 Zookeeper 具有单个节点

php - Node.js在没有任何操作的情况下被mysql自动崩溃

mysql - 搜索字符串查找行值 MYSQL

php - PDO::ATTR_EMULATE_PREPARES 问题

solr - 如何在 SOLR 中创建不区分大小写的字符串字段副本?