在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

指定2个字段设置了权重,搜索时只针对2个字段,在完全命中后,根据日期排序

Elasticsearch | 作者 加里 | 发布于2018年07月19日 | 阅读数:2261

ElasticSearch版本为5.5.0
有多个字段,其中title字段,content字段分别设置了权重3,(可以理解为只针对这2个字段做搜索)
搜索关键词:“香蕉 水蜜桃”
想要出现的结果是:title和content 2个字段都出现香蕉and苹果and水蜜桃的优先显示,并且根据日期做排序,然后接着出现在字段title或者字段content其中任一个字段的其次显示,也需要根据日期排序。
 
例子:
数据A:title-关于香蕉,水蜜桃的营养问题     content-关于香蕉,水蜜桃存在的营养价值     date-2010年-1月1日
数据B:title-关于香蕉,水蜜桃的营养问题     content-关于香蕉,水蜜桃存在的营养价值     date-2013年-3月3日
数据C:title-关于香蕉             的营养问题      content-关于水蜜桃          存在的营养价值     date-2017年-7月7日
数据D:title-关于水果             的营养问题      content-关于香蕉,水蜜桃存在的营养价值     date-2018年-8月8日
数据E:title-关于香蕉,水蜜桃的营养问题     content-关于水果              存在的营养价值      date-2013年-3月3日
 
想要出现的结果是:
数据A,B完全出现关键词的优先显示,并且数据B的时间比较新,数据B靠前。然后是数据A
其次数据C两个字段都出现了关键词,其次显示,并按照时间排序
再者是数据D,E,只有一个字段出现了关键词,排序在最后,并且按照日期排序为数据D,E
 
结论显示结果为 B-A-C-D-E。
已邀请:

要回复问题请先登录注册