`
m635674608
  • 浏览: 5001308 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

es 字段加权重

 
阅读更多
protected QueryBuilder getQueryBuilder(final SearchCriteria searchCriteria) {
	QueryBuilder matchQueryBuilder = null;
	final String queryString = searchCriteria.getQuery();
	if (StringUtils.isBlank(queryString)) {
		matchQueryBuilder = QueryBuilders.matchAllQuery();
	} else {
		final String filterSpecialCharsQueryString = escapeQueryChars(queryString);
		final QueryStringQueryBuilder queryStringQueryBuilder = QueryBuilders
				.queryString(filterSpecialCharsQueryString);
		// Add fields
		queryStringQueryBuilder.field(
				SearchDocumentFieldName.TITLE.getFieldName(), (float) 0.5)
				.field(SearchDocumentFieldName.DESCRIPTION.getFieldName(),
						(float) 0.15);
		for (final String contentCategoryFieldName : SearchFacetName.categoryFacetFields) {
			queryStringQueryBuilder.field(
					SearchDocumentFieldName.CATEGORIES_ARRAY.getFieldName()
							+ "." + contentCategoryFieldName, 1);
		}
		matchQueryBuilder = queryStringQueryBuilder;
	}
	if (searchCriteria.isUseBoostingFactor()) {
		final FunctionScoreQueryBuilder queryBuilder = new FunctionScoreQueryBuilder(
				matchQueryBuilder);
		final ScoreFunctionBuilder scoreFunctionBuilder = new ScriptScoreFunctionBuilder()
				.script(SearchDocumentFieldName
						.getCalculatedScoreScriptForBostFactor());
		queryBuilder.add(scoreFunctionBuilder);
		return queryBuilder;
	}
	return matchQueryBuilder;
}
 

   

{
  "query" : {
    "function_score" : {
      "query" : {
        "bool" : {
          "should" : {
            "query_string" : {
              "query" : "卫衣",
              "default_field" : "cnGoodsName"
            }
          }
        }
      },
      "functions" : [ {
        "field_value_factor" : {
          "field" : "pid",
          "factor" : 2.0,
          "modifier" : "log1p"
        }
      } ]
    }
  }
}

   _search?explain=true

 

 

 

   https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html

http://www.programcreek.com/java-api-examples/index.php?api=org.elasticsearch.index.query.functionscore.script.ScriptScoreFunctionBuilder

 

分享到:
评论

相关推荐

    elasticsearch学习笔记

    Elasticsearch(以下简称ES)是当前最流行的搜索引擎之一,本文旨在通过对ES的基本操作和查询语法的介绍,帮助读者快速入门和精通ES。 批量操作 ES提供了多种批量操作方式,包括通过GET _mget、GET 索引/_mget、GET ...

    Relevant search with applications for Solr and Elasticsearch

    - **实现方法**:详细解释了如何在Solr与Elasticsearch中配置多字段搜索,包括如何设置权重、如何处理不同字段间的相互作用等。 - **案例研究**:通过具体案例来演示多字段搜索的优势和注意事项。 6. **基于术语...

    02-Elasticsearch 8.x 向量搜索使用详解 杭州 1.6 2024

    **Elasticsearch 8.x 向量搜索使用详解** Elasticsearch 8.x 版本引入了对向量搜索的支持,这使得它能够处理非结构化的数据,如图像、文本和语音的语义搜索。向量搜索是通过将数据转换为高维向量并进行相似度比较来...

    基于Java8的SSM+Elasticsearch全文检索的个人博客系统.zip

    在构建一个基于Java8的SSM(Spring、SpringMVC、MyBatis)+Elasticsearch的个人博客系统中,我们需要掌握多个核心技术点。这里,我们将深入探讨如何整合这些技术来实现一个高效的全文检索功能。 首先,让我们了解...

    elasticsearch5.6官方文档(含跳转功能)

    **Elasticsearch 5.6 官方文档详解** Elasticsearch是一款强大的开源搜索引擎,以其分布式、实时、可扩展的特性被广泛应用于日志分析、信息检索、网站搜索等多种场景。5.6版本是Elasticsearch的一个稳定版本,提供...

    SpringBoot集成Elasticsearch7.4 实战.pdf

    dynamic设置也是Elasticsearch索引管理中的一个重要方面,它可以动态添加字段。 SpringBoot集成部分,则涉及到如何将Elasticsearch集成到SpringBoot项目中,这里会涉及到POM文件配置、yml配置文件配置以及核心操作...

    elasticsearch学习入门

    Elasticsearch(ES)是一种基于Lucene的分布式、RESTful搜索和分析引擎,常用于构建实时的全文检索、数据分析和信息存储系统。它的设计目标是简单、可扩展和高性能,适用于大数据环境。作为分布式搜索解决方案,ES...

    elasticsearch指南

    此外,Elasticsearch的术语还包含如Term(术语)、Field(字段)、Document(文档)、Index(索引)、Shard(分片)、Replica(副本)、Routing(路由)等,它们共同构成了Elasticsearch体系结构的基础。 在安装和...

    02-基于Apache SeaTunnel的MySQL到Elasticsearch实时同步解决方案-线上 meetup11.16

    1. **Easy-Es**:这是一个简化 Elasticsearch 操作的工具,支持自定义排序、权重和原生查询,提供了更多的定制空间。 2. **es-client**:开源的可视化工具,提供数据浏览、查询、索引过滤等功能,支持多集群连接,且...

    sort-script:elasticsearch排序脚本

    Elasticsearch默认提供了多种排序方式,如字段排序、评分排序等。然而,在实际应用中,我们可能需要根据更复杂的场景进行排序,例如,基于多个字段的组合权重、动态计算的值或者实时的外部数据。这时,SortScript就...

    高性能ElasticSearch引擎学习.pdf

    Elasticsearch的核心原理包括数据提交、分词处理、权重分配、存储、搜索和结果展示等步骤。 Elasticsearch还是Elastic Stack(前ELK Stack)的一部分,该Stack包括Elasticsearch、Logstash和Kibana三个主要组件。...

    elastic search in action

    Elasticsearch支持多种字段类型,如字符串(String)、整型(Integer)、日期(Date)等,每种类型都有特定的应用场景。 ##### 3.3 数组与多字段(Array and Multi-Fields) - **数组(Array)**:允许在一个字段中存储多个值...

    elasticsearch-analysis-ik-8.9.0.tar.gz

    Elasticsearch 分析插件 IK (Inverted Index) 是一个为中文处理而设计的强大分词器,常用于Spring Data Elasticsearch项目中,以实现高效的全文检索功能。IK分词器能够智能地对中文文本进行切词,提高搜索引擎的精确...

    Elasticsearch核心知识篇、项目中如何使用、如何优化进阶

    - **概念理解**:在Elasticsearch中,可以使用Boost机制为特定字段或查询增加权重,从而影响最终的搜索结果排序。这对于需要对某些关键词进行特殊强调的应用场景非常有用。 - **实现方式**:通过在查询语句中加入`...

    Mastering ElasticSearch 5.0

    ### 掌握ElasticSearch 5.0:深入理解与应用 #### 一、ElasticSearch与Lucene概述 **1. Lucene简介** - **Lucene**是Apache下的一个开源全文检索库,它是ElasticSearch的核心组件之一。 - **深入Lucene索引机制*...

    Elasticsearch分享.pptx

    Elasticsearch(简称ES)是一款强大的开源搜索和分析引擎,基于Apache Lucene构建,适用于分布式环境。它提供了实时、稳定、可靠的搜索和数据分析能力,广泛应用于企业级搜索解决方案中。以下是关于Elasticsearch的...

    Luence和ElasticSearch面试准备.docx

    《Luence和ElasticSearch面试准备》 Lucene和ElasticSearch是两个在全文搜索引擎领域中广泛使用的开源工具。Lucene是一个高性能、全文本搜索库,而Elasticsearch则是在Lucene的基础上构建的一个分布式、RESTful风格...

    es高手进阶篇笔记,136章

    **Elasticsearch 高级应用详解** 在大数据时代,Elasticsearch 作为一款强大的搜索引擎,因其高效全文检索、实时分析及大数据处理能力而备受青睐。本笔记主要涵盖以下几个核心知识点: 1. **结构化搜索实战**: -...

    电商搜索业务,elasticsearch

    在电商搜索业务中,Elasticsearch 是一种广泛使用的搜索引擎,用于快速、高效地处理大量数据。以下是关于电商搜索业务及Elasticsearch应用的详细知识点: 1. **价格与促销**: - 索引结构设计应考虑到价格维度,...

    ElasticSearch查询构建器「ElasticSearch Query builder」-crx插件

    连接到ElasticSearch Server:提及正在运行ES的主机和端口(10.240.0.251:9200),然后按connect按钮。 构建查询:连接到服务器后,它将在可用的“索引和文档”下拉列表中列出所有索引及其对应的文档。 选择要为其...

Global site tag (gtag.js) - Google Analytics