热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr配置文件之schema.xml

schema.xml这个配置文件的根本目的是为了通过配置告诉Solr如何建立索引。solr的数据结构如下:document:一个文档、一条记录field:域、属性solr通过搜索某个或某些field,
schema.xml这个配置文件的根本目的是为了通过配置告诉Solr如何建立索引。
solr的数据结构如下:
  • document:一个文档、一条记录
    • field:域、属性
solr通过搜索某个或某些field,返回若干个符合条件的document,或者按搜索的score排序返回。如果跟数据库对比,document相当于数据库的表,field相当于表中的字段。而schema.xml就是为了定义一个表的结构(定义各个field的名字、类型、约束、等等)。

schema.xml的基本结构如下:                
常用的配置说明:
  • field:定义一个document中的各个fields
    • name:必填。该field的名字。前后都有下划线的name是系统保留的名字,比如“_version_”
    • type:必填。类型,对应于fieldType的name
    • default:该field的缺省值
    • indexed:true/false,是否为该field建立索引,以让用户可以搜索它、统计它(facet)
    • stored:true/false,定义这个field是否可以返回给查询者
    • multiValued:true/false,是否可以容纳多个值(比如多个copyField的dest指向它)。如果是true,则该field不能被排序、不能作为uniqueKey
    • required:true/false,告诉solr这个field是否接受空值,缺省为false
    • docValues:true/false,建立document-to-value索引,以提高某些特殊搜索的效率(排序、统计、高亮)
  • copyField:把一个field的内容拷贝到另外一个field中。一般用来把几个不同的field copy到同一个field中,以方便只对一个field进行搜索
    • source:被拷贝的field,支持用通配符指定多个field,比如:*_name
    • dest:拷贝到的目的field
    • maxChars:最大字符数
  • uniqueKey:指定一个field为唯一索引
  • fieldType:定义field的类型,包括下面一些属性
    • name:必填,被field配置使用
    • class:必填,filedType的实现类。solr.TextField是路径缩写,"等价于"org.apache.solr.schema.TextField"
    • multiValued:?
    • positionIncrementGap:指定mutiValued的距离
    • ananlyzer:如果class是solr.TextField,这个配置是必填的。告诉solr如何处理某些单词、如何分词,比如要不要去掉“a”,要不要全部变成小写……
      • type:index或query
      • tokenizer:分词器,比如:StandardTokenizerFactory
      • filter:过滤器,比如:LowerCaseFilterFactory
  • dynamicField:用通配符定义一个field来存在没有被field定义的漏网之鱼
    • name:使用通配符,比如“*_i”,来处理类似“cost_i”之类的field

一个简单的例子:

















id

















:solrconfig.xml配置文件中,requestHandler "/select"的缺省“df”是“text”。如果按照上面的配置,我们想要的缺省搜索info_text,所以需要在solrconfig.xml中修改:               explicit       10       edismax       info_text        

可以通过http api获取schema信息:
http://:8983/solr//schema?wt=json
http://:8983/solr//schema/fields?wt=json http://:8983/solr//schema/dynamicfields?wt=json
http://:8983/solr//schema/copyfields?wt=json

(原创文章,转载请注明转自Clement-Xu的博客)



推荐阅读
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 本文全面解析了 Python 中字符串处理的常用操作与技巧。首先介绍了如何通过 `s.strip()`, `s.lstrip()` 和 `s.rstrip()` 方法去除字符串中的空格和特殊符号。接着,详细讲解了字符串复制的方法,包括使用 `sStr1 = sStr2` 进行简单的赋值复制。此外,还探讨了字符串连接、分割、替换等高级操作,并提供了丰富的示例代码,帮助读者深入理解和掌握这些实用技巧。 ... [详细]
  • Vuforia 开发指南:第二章 环境配置与搭建
    本章节详细介绍了如何在Vuforia官网上完成账号注册及环境配置。首先,访问Vuforia官方网站并点击“Register”按钮,按照提示填写必要的个人信息。提交表单后,系统将验证信息并创建账户。接下来,用户需要下载并安装Vuforia开发工具,确保开发环境的顺利搭建。此外,还提供了详细的配置步骤和常见问题的解决方案,帮助开发者快速上手。 ... [详细]
  • 在PHP中,高效地分割字符串是一项常见的需求。本文探讨了多种技术,用于在特定字符(如“或”)后进行字符串分割。通过使用正则表达式和内置函数,可以实现更加灵活和高效的字符串处理。例如,可以使用 `preg_split` 函数来实现这一目标,该函数允许指定复杂的分隔符模式,从而提高代码的可读性和性能。此外,文章还介绍了如何优化分割操作以减少内存消耗和提高执行速度。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • HTML 中的 meta 和 script 标签属性是否区分大小写? ... [详细]
  • 在Django中提交表单时遇到值错误问题如何解决?
    在Django项目中,当用户提交包含多个选择目标的表单时,可能会遇到值错误问题。本文将探讨如何通过优化表单处理逻辑和验证机制来有效解决这一问题,确保表单数据的准确性和完整性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
author-avatar
真理往往是废话
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有