首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在compass (lucene)中指定是否存储字段内容?

在compass (lucene)中,可以通过设置字段的存储属性来指定是否存储字段内容。存储字段内容是指将字段的实际值存储在索引中,以便可以在搜索结果中直接获取字段值,而不需要再去访问原始数据源。

在compass中,可以使用@SearchableProperty注解来指定字段的存储属性。该注解有一个参数store,用于指定存储属性的取值。可以设置store参数为Store.YES或Store.NO来分别表示存储和不存储字段内容。

下面是一个示例代码片段,演示了如何在compass中指定是否存储字段内容:

代码语言:txt
复制
import org.compass.annotations.*;

@Searchable
public class MyDocument {

    @SearchableProperty(store = Store.YES)
    private String content;

    //其他字段...

    //getter和setter方法...
}

在上述示例中,content字段通过设置store = Store.YES来指定存储字段内容。如果将store参数设置为Store.NO,则表示不存储字段内容。

当需要搜索并获取某个字段的内容时,可以使用SearchResults对象获取搜索结果中的字段值。示例如下:

代码语言:txt
复制
CompassSession session = //获取CompassSession对象
CompassQuery query = //构建查询对象

SearchResults searchResults = query.hits();
for (SearchHit hit : searchResults) {
    String content = hit.getResource().getValue("content");
    //处理字段内容...
}

需要注意的是,存储字段内容会占用更多的索引空间,因此在设计索引时需要权衡存储属性的设置。如果某个字段不需要在搜索结果中直接获取其内容,可以将存储属性设置为Store.NO,以减少索引的大小。

对于使用compass的开发者来说,可以根据具体的业务需求,合理地选择是否存储字段内容,以及是否在搜索结果中获取字段值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Compass: 在你的应用中集成搜索功能

从可用性的角度来说,解决这个问题的答案就是提供一个单一的、Google样式的检索框,用户可以输入任何符合实例字段内容。他们可以检索和表示符合这些内容的结果。...所有实体的字段可以像只有一个文件那样被索引,并且是正则文本搜索可以匹配的实体。现在非常流行的搜索引擎之一是Luence。Lucene是相当不错的搜索引擎,在很多项目中应用成功。...另外一个问题是缺少对Lucene的事务控制,把领域模型数据存储到数据库和搜索引擎是有问题的。...Compass扩展了核心Lucene,增加了事务控制功能和快速更新,也包括在数据库存储索引的功能。当然,它没有去隐藏Lucene的特性——所有Lucene的功能都能通过Compass实现。...XML内容映射可以在搜索引擎中存储为XML结构,这样就可以加载和搜索数据。

1.3K90

【你真的会用ES吗】ES基础介绍(一)

2004年,Shay Banon基于Lucene开发了Compass,在考虑Compass的第三个版本时,他意识到有必要重写Compass的大部分内容,以“创建一个可扩展的搜索解决方案”。...keyword用于索引结构化内容字段,例如 ID、电子邮件地址、主机名、状态代码、邮政编码或标签。 如果您需要索引全文内容,例如电子邮件正文或产品描述,你应该使用text字段。...doc_values是为了实现排序和聚合引入的,列式存储的数据格式,指定为false可以一程度上节约空间。...⚠️默认分词情况下,无论是term还是match,都无法判断string类型字段是否为空字符串以上两点均是因为text字段存储的是分词结果,如果字段值为空,分词结果将不会存储term信息,keyword...字段存储的是原始内容

2K73
  • 一步一步学lucene——(第一步:概念篇)

    我们在下边研究的lucene就是对信息做全文检索的一种手段,或者说是一项比较流行的技术,跟google、baidu等专业的搜索引擎比起来会有一的差距,但是对于普通的企业级应用已经是足够了。...但是有些情况下,获取内容的工作会很复杂,操作文件系统、内容管理、各种web站点的数据等。...它是hibernate对著名的全文检索系统Lucene的一个集成方案,作用在于对数据表中某些内容庞大的字段声明为text的字段)建立全文索引,这样通过hibernate search就可以对这些字段进行全文检索后获得相应的...POJO,从而加快了对内容庞大字段进行模糊搜索的速度(sql语句中like匹配)。...CompassCompass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架. 3、文档分析 就是分析如何建立索引

    1.3K80

    Elasticsearch 简介

    Doug Cutting 毕业于斯坦福大学,在 Xerox 积累了一的工作经验后,从 1997 年开始,利用业余时间开发出了 Lucene。...2004 年,Shay Banon 基于Lucene 开发了 ElasticSearch 的前身 Compass。...在考虑 Compass 的第三个版本时,他意识到有必要重写 Compass 的大部分内容,以“创建一个可扩展的搜索解决方案”。...API 请求方式也发生变化,获得某索引的某ID的文档:GET index/_doc/id其中index和id为具体的值 Lucene9.0 引入了真正的内存断路器,它可以更精准地检测出无法处理的请求,...更快的前 k 个查询 间隔查询(Intervals queries) 某些搜索用例(法律和专利搜索)引入了查找单词或短语彼此相距一距离的记录的需要。

    62810

    跟我一起云计算(4)——lucene

    然后看一下lucene索引用到的类: 再看一下查询用到的类: 理解索引过程 索引的过程可以简述为: lucene加权 这部分内容可以参考: http://www.cnblogs.com/hongten/...QueryParser queryparser的解析过程: 1、使用queryparser完成解析搜索请求 2、基本格式: QueryParser parser=new QueryParser("字段名称...4、Katta Katta是一个可扩展的、故障容错的、分布式实施访问的数据存储。 Katta可用于大量、重复、索引的碎片,以满足高负荷和巨大的数据集。这些索引可以是不同的类型。...6、Compass Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架。...Compass包括: 搜索引擎抽象层(使用Lucene搜索引荐), OSEM(Object/Search Engine Mapping)支持, 事务管理, 类似于Google的简单关键字查询语言, 可扩展与模块化的框架

    72360

    【ES三周年】一份初学者的Elasticsearch入门笔记

    诞生Elasticsearch是构建在 Lucene之上的开源分布式搜索引擎。2004年 Shay Banon 基于Lucene开发了Compass。...2010年 Shav Banon重写了Compass,取名Elasticsearch,支持分布式,可水平扩展。降低全文检索的学习曲线,可以被任何编程语言调用。...一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来,一般会为具有一组共同字段的文档定义一个类型。...类比到数据库上相当于表字段field相当于是数据表的字段,对文档数据根据不同属性进行的分类标识文档document文档用JSON格式来表示,它相当于数据库中表的一条数据映射 mappingmapping...是处理数据的方式和规则方面做一些限制,某个字段的数据类型、默认值、分析器、是否被索引等等,这些都是映射里面可以设置的,对于数据库来说就是表结构的定义。

    3.8K5573

    性能最佳实践:MongoDB索引

    MongoDB索引可以按需创建和删除以适应不断变化的应用程序需求和查询模式,并且它们可以在文档中的任何字段上声明,包括嵌套在数组中的字段。 下面我们来讨论一下如何在MongoDB中充分地使用索引。...想要查询被覆盖,需要过滤、排序和/或返回给客户端的所有字段都必须出现在索引中。要确定一个查询是否是覆盖查询,可以使用explain()方法。...可以定义一个过滤器来自动索引集合中所有匹配的字段、子文档和数组。 与其他索引一样,通配符索引也需要存储和维护,因此它们会给数据库增加开销。...如果你在Atlas服务中运行MongoDB,可以考虑使用Atlas全文搜索,它提供了一个与MongoDB数据库集成的完全托管的Lucene索引。...使用MongoDB Compass和Atlas数据浏览器进行索引覆盖情况的可视化 作为MongoDB的免费GUI,Compass提供了许多特性来帮助优化查询性能,包括数据模式浏览和查询计划可视化——本系列之前的文章介绍过这两方面内容

    3.4K30

    【ES三周年】聊一聊关于Elasticsearch的那些事

    1.1官方定义 Elasticsearch (简称ES)是一个天然支持分布式的搜索,聚合分析和存储引擎。...Logstash Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。...MySQL对比 Elasticsearch MongoDB MySQL DB类型 搜索引擎 文档型数据库 关系型数据库 基于何种语言开发 Java C++ C,C++ 数据格式 Json Json Row 是否支持分布式...在互联网初期各大互联网公司基本都是基于Lucene包装,业务代码跟核心库一起构建发布,这样不仅维护麻烦,而且每次修改都存在一风险。...于是他在 Lucene 之上,封装了一个叫作 Compass 的程序框架,与 Hibernate和 JPA 等 ORM 框架进行集成,通过操作对象的方式来自动地调用 Lucene 以构建索引。

    65570

    ElasticSearch基础概念

    直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。他发布了他的第一个开源项目 Compass。...这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch。...它可以被下面这样准确的形容: 一个分布式的实时文档存储,每个字段 可以被索引与搜索 一个分布式实时分析搜索引擎 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据 四、ElasticSearch...主要功能: 1)海量数据的分布式存储以及集群管理,达到了服务与数据的高可用以及水平扩展; 2)近实时搜索,性能卓越。...集群名称可以在配置文件中指定。 Node 节点:存储集群的数据,参与集群的索引和搜索功能。

    13610

    SpringBoot电商项目实战 — ElasticSearch接入实现

    如今在一些中大型网站中,搜索引擎已是必不可少的内容了。首先我们看看搜索引擎到底是什么呢?搜索引擎,就是根据用户需求与一算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术。...搜索引擎依托于多种技术,网络爬虫技术、检索排序技术、网页处理技术、大数据处理技术、自然语言处理技术等,为信息检索用户提供快速、高相关性的信息服务。...Lucene、Nutch、Solandra、Solr、ElasticSearch、Compass等,这里具体不一一对比讨论。今天主要说的是ElasticSearch搜索引擎的实现。 ?...ElasticSearch接入实现 ElasticSearch简称es,它是一款基于Lucene框架的分布式搜索引擎,也是一个高度可扩展的开源全文搜索和分析引擎,可以快速的、近实时地对大数据进行存储、...spring.data.elasticsearch.cluster-nodes=192.168.1.101:9300 spring.data.elasticsearch.repositories.enabled=true ES的泛型实体,具体根据自己的业务和所需字段定义

    1.7K97

    ElasticSearch系列之什么是ElasticSearch?

    实现基于Lucene,封装了许多Lucene底层的功能,提供了简单易用的RestFul API接口和很多语言的客户端,Java的高级客户端(Java High Level REST Client)和底层客户端...封装了lucene的开源项目,开发出了项目compass。找到工作后,做分布式高性能项目,再封装 compass,写出了elasticsearch,使得lucene支持分布式。...3、Lucene和ElasticSearch Lucene提供了全文搜索的底层实现,api使用起来相对比较复杂;ElasticSearch是基于Lucene实现的,封装了Lucene比较复杂的底层功能,...Field:字段。就像数据库的列,定义每个document应该有的字段。 Type:类型。一个index可以对应一个或者多个type,type是index中的逻辑数据分类。...所以,为了保证安全,需要将每一个index的分片进行备份,存储在另外服务器。

    62520

    Elasticsearch简介

    1、Elasticsearch简介 1.1、ElasticSearch的诞生 2004 年,以色列人 Shay Banon 创造了一款名为 Compass 的搜索引擎,在考虑 Compass 的第三个版本时...,他意识到有必要重写 Compass 的大部分内容,以"创建一个可扩展的搜索解决方案"。...映射定义了字段的名称、字段的类型(文本、整数、日期等)、以及可能的一些额外信息(如是否字段可以被搜索、是否存储原始值等) Ps:Elasticsearch 允许在文档中添加映射中未定义的字段。...当 Elasticsearch 遇到映射中未定义的字段时,它会根据字段内容自动推断字段类型,并更新映射。...字段的数据类型可以是简单的(文本、数字、日期等),也可以是复杂的(如对象或者数组)。 例如,一个文档可能有一个名为 title 的字段用于存储标题,一个名为 date 的字段用于存储日期,等等。

    50610

    「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程

    不久他发布了他的第一个基于Lucene的用java编写的开源项目 Compass。...我们知道,一篇文档有多种信息,如题目、作者、内容、修改时间等。不同类型的信息用不同的Field来表示,在本例中,一共有两类信息进行了索引,一个是文件路径path,一个是文件内容contents。...比如我们声明一个int类型的变量,那以后这个变量只能存储int类型的数据。比如我们声明一个double类型的mapping字段,则只能存储double类型的数据。...Mapping不仅是告诉ElasticSearch,哪个字段是哪种类型。还能告诉ElasticSearch如何来索引数据,以及数据是否被索引到等。...映射 Mapping 映射类似关系型数据库中的schema,用于定义field的属性,字段类型,是否分词等。

    1.4K30

    【全文检索_04】Elasticsearch 基础入门

    于是他发布了自己的第一个开源项目 “Compass”。后来 Shay 找到了一份工作,这份工作主要围绕在高性能与分布式内存数据存储的环境中。高性能、实时、分布式搜索引擎是必不可少的需求。...因此他决定重写 Compass 库,使其成为一个独立的服务器,这便是 Elasticsearch。   2010年的2月份,第一个公开版本发布了。...Field(字段) Field 是 Elasticsearch 的最小单位。一个 document 里面有多个 field,每个 field 就是一个数据字段。...Mapping(映射) 数据如何存放到索引对象上,需要有一个映射配置,包括:数据类型、是否存储是否分词等。...Mapping 用来定义 Document 中每个字段的类型,即所使用的分词器、是否索引等属性,非常关键等。

    45410

    ELK学习笔记之ElasticSearch简介

    当然Elasticsearch并不仅仅是Lucene这么简单,它不但包括了全文搜索功能,还可以进行以下工作: 1.分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。...● field:类比关系数据库里的field,每个field 都有自己的字段类型。 ● shard:是一个Lucene 实例。...分片与备份(Sherd & Replica) 在ES中,索引会备份成分片,每个分片是独立的lucene索引,可以完成搜索分析存储等工作。 分片的好处: 1....这一点也是为什么开发人员更愿意使用ES或者compass这样的框架 而不是直接使用Lucene的一个原因。...与之对应的,在ES中:Mapping定义索引下的Type的字段处理规则,即索引如何建立、索引类型、是否保存原 始索引JSON文档、是否压缩原始JSON文档、是否需要分词处理、如何进行分词处理等。

    82340

    亿级流量场景下,大型缓存架构设计实现【全文检索高级搜索---ElasticSearch篇】

    做软件开发的话,或者对IT、计算机有一的了解的话,都知道,数据都是存储在数据库里面的,比如说电商网站的商品信息,招聘网站的职位信息,新闻网站的新闻信息,等等吧。...所以说,很自然的一点,如果说从技术的角度去考虑,如何实现说,电商网站内部的搜索功能的话,就可以考虑,去使用数据库去进行搜索。...1、比方说,每条记录的指定字段的文本,可能会很长,比如说“商品描述”字段的长度,有长达数千个,甚至数万个字符,这个时候,每次都要对每条记录的所有文本进行扫描,懒判断说,你包不包含我指定的这个关键词(比如说...程序员在失业期间想给老婆写一个菜谱搜索引擎,觉得lucene实在太复杂了,就开发了一个封装了lucene的开源项目,compass。...后来程序员找到了工作,是做分布式的高性能项目的,觉得compass不够,就写了elasticsearch,让lucene变成分布式的系统。

    1.3K11

    Elasticsearch 简介

    在 2004 年, Shay Banon,也就是现在 Elastic 的 CEO,开发了一个叫做 Compass 的开源项目: 构建于 Lucence 之上 目的是使得 Lucene 搜索更容易集成到...不过,Elasticsearch 不仅仅是 Lucene 和全文搜索引擎,它还提供: 分布式的实时文件存储,每个字段都被索引并可被搜索 实时分析的分布式搜索引擎 可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据...必须对 Elasticsearch 上的数据进行非规范化(在文档中复制或添加冗余字段,以避免必须加入数据)以改进搜索和 索引/更新性能。...重要提示:在关系数据或 ACID 事务需求的情况下,Elasticsearch 通常与传统的 RDBMS 解决方案( MySQL)一起使用。...我们刚刚介绍了 Elasticsearch 的一小部分内容。有关更多信息,请参阅 elastic.co 网站。

    79320
    领券