Elastic Search Filter Script

 IFilterContainer filter = new FilterContainer();
                filter.Script = new ScriptFilter();
                filter.Script.ScriptFile = " ingredient_well_with_filter";
                filter.Script.Params = new Dictionary<string, object>();
                filter.Script.Params["terms"] = searchedIngredientIds;
                filter.Script.Params["field"] = SearchConstants.DocFields.Dish.MetaIngredients;
                filter.Script.Params["countField"] = SearchConstants.DocFields.Dish.Ingredients;
                filter.Script.Params["minTermCount"] = searchedIngredientIds.Count() + 1;
                filter.Script.Params["maxTermCount"] = searchedIngredientIds.Count() + 3;
                
                searchRequest.Query = new QueryContainer();

                searchRequest.Query.Filtered = new FilteredQuery() { Filter = filter };



ingredient_well_with_filter.groovy

def score = 0;
def mCount   = 0;
def uCount = 0;


for(term in terms){
if ( _index[field][term].tf() > 0){
mCount +=1
  }
};   
score = mCount;
uCount = doc[countField].size() - mCount;
if(mCount>0){
score = (50 - uCount) * 20 + mCount;                       
}


score;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值