栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Elasticsearch是否可以推广“最新”商品?(FOQElasticaBundle)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Elasticsearch是否可以推广“最新”商品?(FOQElasticaBundle)

经过大量的实验和数小时的拖曳Interweb的努力,我终于设法达到了期望的行为!(值得称赞的是克林顿·戈姆利。)

映射配置:

mappings:    title: { boost: 8 }    summary: { boost: 5 }    text: { boost: 3 }    author:    publishedAt: { type: date }

以下是使用PHP客户端Elastica来动态构建查询以使用原始映射和发布日期进行增强的代码:

$query = new Elastica_Query_Bool();$query->addMust(new Elastica_Query_QueryString($queryString));$ranges = array();for ($i = 1; $i <= 5; $i++) {    $date = new DateTime("-$i month");    $currentRange = new Elastica_Query_Range();    $currentRange->addField('publishedAt', array(        'boost' => (6 - $i),        'gte' => $date->getTimestamp()    ));    $ranges[] = $currentRange->toArray();}$query->addShould($ranges);$pagerfanta = $this->getFinder()->findPaginated($query);

对于那些对原始Elasticsearch查询更感兴趣的人(为简洁起见,仅使用3个日期范围)…

curl -XPOST 'http://localhost:9200/website/story/_search?pretty=true' -d '{  "query" : {    "bool" : {      "must" : {        query_string: {          query: "<search term(s)>"        }      },      "should" : [        {          "range" : { "publishedAt" : {   "boost" : 5,   "gte" : "<1 month ago>" }          }        },        {          "range" : { "publishedAt" : {   "boost" : 4,   "gte" : "<2 months ago>" }          }        },        {          "range" : { "publishedAt" : {   "boost" : 3,   "gte" : "<3 months ago>" }          }        }      ]    }  }}'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369105.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号