首页 > 其他分享 >Elasticsearch(7) field_value_factor的使用

Elasticsearch(7) field_value_factor的使用

时间:2024-03-17 11:31:28浏览次数:15  
标签:title price value field Elasticsearch factor products

elasticsearch version: 7.10.1
field_value_factor 是 Elasticsearch 中用于计算基于字段值的函数评分的一部分,它允许你根据文档中某个字段的值来调整该文档的评分。

field_value_factor语法

{  
  "query": {  
    "match_all": {}  
  },  
  "function_score": {  
    "functions": [  
      {  
        "field_value_factor": {  
          "field": "popularity",  
          "factor": 1,  
          "modifier": "log1p",  
          "missing": 1  
        }  
      }  
    ],  
    "score_mode": "multiply",  
    "boost_mode": "sum"  
  }  
}
{  
  "field_value_factor": {  
    "field": "your_field_name",  
    "factor": your_factor_value,  
    "modifier": "none | log | log1p | log2p | square | sqrt | reciprocal",  
    "missing": default_value_for_missing_field  
  }  
} 
  • field:这是你想要根据其值来调整评分的字段名。它应该是一个数值字段。
  • factor:一个乘数,用于调整字段值对最终评分的影响。例如,如果你想要将字段值乘以 10 来增加其影响,你可以设置 factor 为 10。
  • modifier:这是一个可选参数,它定义了如何修改字段值以计算其评分贡献。它可以是以下值之一:
    none:不进行任何修改,直接使用字段值。
    log:对字段值取自然对数。
    log1p:对字段值加 1 后取自然对数,这可以防止对 0 或负数取对数。
    log2p:对字段值加 1 后取以 2 为底的对数。
    square:计算字段值的平方。
    sqrt:计算字段值的平方根。
    reciprocal:计算字段值的倒数。
  • missing:当字段的值缺失或不存在时,使用的默认值。这确保即使某些文档缺少该字段,也可以计算一个评分。

field_value_factor案例

场景

我们想要根据产品的价格来调整搜索结果的评分。

索引创建

PUT /products  
{  
  "mappings": {  
    "properties": {  
      "title": {  
        "type": "text"  
      },  
      "price": {  
        "type": "float"  
      }  
    }  
  }  
}

文档插入

POST /products/_doc/1  
{  
  "title": "Product A",  
  "price": 100.0  
}  
  
POST /products/_doc/2  
{  
  "title": "Product B",  
  "price": 200.0  
}  
  
POST /products/_doc/3  
{  
  "title": "Product C",  
  "price": 50.0  
}

POST /products/_doc/4  
{  
  "title": "Product D",  
  "price": 150.0  
}  
  
POST /products/_doc/5  
{  
  "title": "Product E",  
  "price": 75.0  
}  
  
POST /products/_doc/6  
{  
  "title": "Product F",  
  "price": 300.0  
}  
  
POST /products/_doc/7  
{  
  "title": "Product G",  
  "price": 250.0  
}  
  
POST /products/_doc/8  
{  
  "title": "Product H",  
  "price": 125.0  
}

查询语句

GET /products/_search  
{  
  "query": {  
    "function_score": {  
      "query": {  
        "match_all": {}  
      },  
      "functions": [  
        {  
          "field_value_factor": {  
            "field": "price",  
            "factor": 1,  
            "modifier": "none",  
            "missing": 1  
          }  
        }  
      ],  
      "score_mode": "multiply",  
      "boost_mode": "replace"  
    }  
  }  
}

标签:title,price,value,field,Elasticsearch,factor,products
From: https://blog.csdn.net/qq_29312279/article/details/136636999

相关文章

  • Elasticsearch快速检索的法宝: 倒排索引
    倒排索引(InvertedIndex)是搜索引擎和信息检索系统中的一个关键数据结构,它允许快速进行全文搜索。在倒排索引中,文档的内容被分析并分割成一系列的词条(tokens),然后每个词条被映射到包含它的所有文档列表。倒排索引的结构倒排索引通常由两个主要的组件构成:词条词典(TermDicti......
  • 安装ElasticSearch-RPM
    Architecture:x86-64内存:2GBOperatingSystem:AlibabaCloudLinux3(SoaringFalcon)Kernel:Linux5.10.134-15.al8.x86_64elasticsearch-8.9.0-- 序章elastic.io官网:elasticsearchhttps://www.elastic.co/cn/elasticsearch下载页面:https://www.elastic.co/do......
  • 插入数据库遇到中文无插入的问题 Error 1366 (HY000): Incorrect string value: ‘\x
    项目场景:beego登录注册过程中将信息写入到MYSQL数据库中问题描述字段写入过程中数据出现无法写入的情况,出现报错:Error1366(HY000):Incorrectstringvalue:‘\xE7\x94\xB7’forcolumn‘sex’atrow1原因分析:根据控制台收到的打印信息我发现数据正确从前......
  • Elasticsearch
    ElasticsearchLucene,Solr,ElasticSearch比较Lucene,Solr,和Elasticsearch是三个与搜索相关的开源项目,它们之间存在紧密的联系,但又有一些区别。以下是它们的比较:Lucene:Lucene是一个Java编写的全文检索引擎库,提供了强大的文本搜索和索引功能。它是一个基础库,提供了......
  • 分布式搜索elasticsearch(1)
    1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在GitHub搜索代码在电商网站搜索商品 在百度搜索答案在打车软件搜索附近的车1.1.2.ELK技......
  • Elasticsearch 基础-1
    Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引孳,基于RESTfulweb接口。功能:分布式的搜索引擎和数据分析引擎全文检索(like),结构化检索(a=1),数据分析(count/groupby)对海量数据进行近实时的处理(秒级)特点:可拓展性:大型分布式集群(......
  • Paper Reading: Imbalanced regression and extreme value prediction
    目录研究动机文章贡献本文方法不平衡回归的相关函数控制点插值方法自动和非参数相关函数评价指标实验结果数据集和实验设置模型选择实验模型优化优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需......
  • pytorch使用pytorch_wavelets包错误:ValueError: step must be greater than zero 错误
    错误描述在使用pytorch_wavelets包的DWT1DInverse时,发现报错信息如下:Traceback(mostrecentcalllast):File"/work/GDN/test/test_DWT.py",line24,inx_=idwt((YL,YH))File"/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py",line550......
  • Elasticsearch - Docker安装Elasticsearch8.12.2
    前言最近在学习ES,所以需要在服务器上装一个单节点的ES服务器环境:centos7.9安装下载镜像目前最新版本是8.12.2dockerpulldocker.elastic.co/elasticsearch/elasticsearch:8.12.2创建配置新增配置文件elasticsearch.ymlhttp.host:0.0.0.0http.cors.enabled:true......
  • 轻盈高效:深入了解.NET中的ValueStopwatch计时器
     概述:ValueStopwatch是.NET中轻量级计时器,用于高性能时间测量。作为值类型,避免了装箱拆箱开销,内存占用小。通过简单的使用方法,轻松实现代码块执行时间测量,且相比Stopwatch更为高效。在.NET中,ValueStopwatch是一个轻量级的计时器类,用于测量代码块的执行时间。相较于System.Dia......