LTR 插件使用笔记

LTR 插件使用

1、初始化默认的特征仓库
一个特征仓库就是一个es的索引,可以存储特征和模型的元数据。

默认的特征仓库,就是

	PUT _ltr
	DELETE _ltr

2、特征和特征集合
特征集合是LTR在es中发生行为的地方。
创建特征集合,可以用POST,并给出特征集合的名字和特征列表

_ltr是索引
_featureset是type
下面的document存储了对应的特征定义

POST _ltr/_featureset/test
{
   "featureset": {
        "features": [
            {
                "name": "title_query",
                "params": [
                    "keywords"
                ],
                "template_language": "mustache",
                "template": {
                    "match": {
                        "title": "{{keywords}}"
                    }
                }
            },
            {
                "name": "custom_title_query_boost",
                "params": [
                    "some_multiplier",
                    "ltr_param_foo"
                ],
                "template_language": "script_feature",
                "template": {
                    "lang": "painless",
                    "source": "(long)params.default_param * params.feature_vector.get('title_query') * (long)params.some_multiplier * (long) params.param_foo",
                    "params": {
                        "default_param" : 10.0,
                        "some_multiplier": "some_multiplier",
                        "extra_script_params": {"ltr_param_foo": "param_foo"}
                    }
                }
            }
        ]
   }
}

分析一下LTR插件怎么利用的索引
首先,ltrstore是一个索引,它的mapping如下:

GET .ltrstore/_mapping

{
  ".ltrstore" : {
    "mappings" : {
      "store" : {
        "dynamic" : "strict",
        "properties" : {
          "feature" : {
            "type" : "object",
            "enabled" : false
          },
          "featureset" : {
            "type" : "object",
            "enabled" : false
          },
          "model" : {
            "type" : "object",
            "enabled" : false
          },
          "name" : {
            "type" : "text",
            "fields" : {
              "prefix" : {
                "type" : "text",
                "analyzer" : "name_prefix",
                "search_analyzer" : "name_prefix_search"
              }
            },
            "analyzer" : "keyword"
          },
          "type" : {
            "type" : "keyword"
          }
        }
      }
    }
  }
}

所以以下返回一样

GET .ltrstore/store/_search
GET _ltr/_featureset

同理,以下也是一样的

GET .ltrstore/store/featureset-test   //特征集合的内容就是一个document	
GET _ltr/_featureset/test   //返回某个特征集合的内容

也就是说LTR把索引下的分类映射成了object的document来存储

同样的,往里写入时,可以自己添加一些字段,就一样了

POST .ltrstore/store/featureset-singletest
{
  "name":"singletest",      //自己添加的
  "type":"featureset",       //自己添加的
  "featureset": {
    "name":"singletest",    //自己添加的
        "features": [
            {
                "name": "title_query",
                "params": [
                    "keywords"
                ],
                "template_language": "mustache",
                "template": {
                    "match": {
                        "title": "{{keywords}}"
                    }
                }
            },
            {
                "name": "custom_title_query_boost",
                "params": [
                    "some_multiplier",
                    "ltr_param_foo"
                ],
                "template_language": "script_feature",
                "template": {
                    "lang": "painless",
                    "source": "(long)params.default_param * params.feature_vector.get('title_query') * (long)params.some_multiplier * (long) params.param_foo",
                    "params": {
                        "default_param" : 10.0,
                        "some_multiplier": "some_multiplier",
                        "extra_script_params": {"ltr_param_foo": "param_foo"}
                    }
                }
            }
        ]
   }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风翔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值