陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

摘要: Solr的Filed中有很多参数,其中的index和store参数让人有点犯晕。

消失的Field

<field name="description_s" type="text" indexed="false" stored="false" required="false" />
  • 1

上面的这个Field的index和store属性都设置为false。如果你插入一片含有该field的doc到Solr,你会发现不能query这个field,就好像刚才插入的数据丢失了。

异想天开的设计

有时候你不希望你的数据被索引或存储,那么你就可以设置这两个参数都为FALSE。对于dynamicField设置的比较宽泛,通过上面这种设置就可以把某一种数据排除掉。

<dynamicField name="*_s" type="text" indexed="true" stored="true"/>
  • 1

这种dynamicField是一种常见的配置,可以指定一个具体的Field来覆盖这种设计。

索引?存储?

通过indexed=true可以使得一个field可以被搜索,如果你有一个字段title设置的是indexed=true,那么q=title:csdn就是在搜索标题中含有csdn的document。如果你设置indexed=false,就算你有符合的数据也无法搜索出来。 stored=true意味着你可以在结果中看到这个field,通过fl参数可以控制是否在结果中显示,如果你设置stored=false,就算你有符合的数据看不到该field。

 

你可以这样理解:
Indexed=true   就是可以查询
Stored=true     就是内容存储

设置关键是只设置需要查询的Indexed=true,需要和查询结果一起返回的字段内容设置Stored=true,其他就是false,节约索引大小和资源。

indexed表示需不需要建立索引,以便之后对这个field进行查询; 

stored表示需不需要随索引同时存储这个field本身的内容,以便查询时直接从结果中获取该内容,一般大数据(比如文件内容本身)不会和索引一起保存,节省资源,防止索引过大。

posted on   宏宇  阅读(554)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2011-08-14 Repeater一行显示数据库中多行表记录
2008-08-14 IIS安装时,安装程序无法复制一个或多个文件。特定错误码是0x4b8
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示