note:solr的基本概念

2019-03-27 01:10|来源: 网路

Solr 和 Lucene 中,使用一个或多个 Document 来构建索引。Document 包括一个或多个 FieldField 包括名称、内容以及告诉 Solr 如何处理内容的元数据。例如,Field 可以包含字符串、数字、布尔值或者日期,也可以包含您想添加的任何类型。Field 可以使用大量的选项来描述,这些选项告诉 Solr 在索引和搜索期间如何处理内容。
主要是这两个属性。
 
 
一个索引示例
浏览到 http://localhost:8080/dw/index.jsp 可以查看索引过程的更多细节。首先为表单中的每个字段填入适当的条目并按 Submit 按钮。示例应用程序接受条目、创建 Solr 请求并显示请求以便在下一个屏幕上查看。清单 1 包含了一个 add 命令的例子,当您按下 Submit 按钮时向 Solr 发送这个命令。

清单 1. Solr add 命令样例

<add>
    <doc>
        <field name="url">http://localhost/myBlog/solr-rocks.html</field>
        <field name="title">Solr Search is Simply Great</field>
        <field name="keywords">solr,lucene,enterprise,search</field>
        <field name="creationDate">2007-01-06T05:04:00.000Z</field>
        <field name="rating">10</field>
        <field name="content">Solr is a really great open source search server. It scales,
        it's easy to configure and the Solr community is really supportive.</field>
        <field name="published">on</field>
    </doc>
</add>

清单 1 的 <doc> 中的每个 field 条目告诉 Solr 应该将哪些 Field 添加到所创建文档的 Lucene 索引中。可以向 add 命令添加多个 <doc>。稍后我将解释 Solr 如何处理这些 field。现在,知道包含清单 1 中指定的七个 field 的文档将会被索引就足够了。
当您在 “Solr XML Command” 页面提交命令时,结果将发往 Solr 进行处理。HTTP POST 将命令发往在 http://localhost:8080/solr/update 运行的 Solr Update Servlet。如果一切进展顺利,则会随 <result status="0"/> 返回一个 XML 文档。Solr 使用相同的 URL 自动更新文档(示例应用程序中的 URL 是 Solr 识别文档以前是否被添加过所使用的惟一 id)。solr接受多种文件格式(xml,json,csv ;还可以利用solr的提取库从word,pdf等文档中提取数据进行索引)。
上面的doc示例为提交一篇blog进行索引。
检索得到的数据也以doc为单位。
字段声明的高级特性dynamicField
(Roo 插件中将 索引的实体类都声明为 动态字段 比如
<dynamicField name="*_i" type="sint" indexed="true" stored="true"/> 属性只要满足*_i的格式,就按上面的配置处理)。
 






转自:http://www.cnblogs.com/HelloCoding/archive/2012/01/19/2327514

相关问答

更多
  • 1.建立数据库database,建立数据表student。 字段: sid 学号 文本 sname 姓名 文本 ssex 性别 文本(2字节) saddress 地址 文本 stel 电话 文本 2.类代码 /****************************************************** 使用: 设置数据库路径、sql语句、最大返回行数,使用getHTMLTable()返回html表格形式的字符串 executeSQL(String,String)执行SQL语句返回一个对象,请 ...
  • 在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(Architectural Pattern)、设计模式(Design Pattern)、代码模式(Coding Pattern)。 架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质和力学。架构模式的好坏可以影响到总体布局和框架性结构。 设计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。 代码模式( ...
  • 有限元法(finite element method)是一种高效能、常用的数值计算方法。科学计算领域,常常需要求解各类微分方程,而许多微分方程的解析解一般很难得到,使用有限元法将微分方程离散化后,可以编制程序,使用计算机辅助求解。有限元法在早期是以变分原理为基础发展起来的,所以它广泛地应用于以拉普拉斯方程和泊松方程所描述的各类物理场中(这类场与泛函的极值问题有着紧密的联系)。自从1969年以来,某些学者在流体力学中应用加权余数法中的迦辽金法(Galerkin)或最小二乘法等同样获得了有限元方程,因而有限元法 ...
  • 你是solr 4以后的版本吧,使用了version的概念 文档数会不停的增加、或不变 只有达到某个合并的零界点的话,才会使文档数的跟你数据一致 删除:文档数不变化 更新/新增:文档数增大
  • 1.我需要了解的所有命名约定是什么? db表是复数,模型是单数,控制器是复数。 因此您拥有由users表支持的User模型,并可通过UsersController查看。 文件应该命名为类名的wide_cased版本。 所以FooBar类需要放在一个名为foo_bar.rb的文件中。 如果您使用模块命名空间,命名空间需要由文件夹来表示。 所以如果我们谈论Foo::Bar类,它应该在foo/bar.rb 。 2.控制器操作应如何构建和命名? 控制器操作应该是RESTful。 这意味着您应该将您的控制器视为公开资 ...
  • 栈,是一种先进后出的数据结构, 队列,是一种先进先出的数据结构, 栈,有一个指针,指向栈顶元素 队列,有两个指针,一个指向队尾,一个指向队首 栈,只能从顶进,从顶出 队列,从队尾进,从队首出 栈,像一个木桶,我们往里面放面包,我们只能从桶口处往里面放,然后再从桶口处往外取,这就形成了栈的先进后出的特性。 队列,像一个管子,我们从管子的屁股处往里面塞糖豆,肯定是最先塞进去的糖豆先从管子的头处掉出去,这就形成了队列的先进先出的特性。 这是我能达到的最精简的程度了,希望你能看懂。^_^
  • 是数学上的一类特殊函数的总称。一般贝塞尔函数是下列常微分方程(一般称为贝塞尔方程)的标准解函数: 这类方程的解是无法用初等函数系统地表示的。 贝塞尔函数的具体形式随上述方程中任意实数 变化而变化(相应地, 被称为其对应贝塞尔函数的阶数)。实际应用中最常见的情形为 是整数 ,对应解称为n阶贝塞尔函数。  尽管在上述微分方程中, 本身的正负号不改变方程的形式,但实际应用中仍习惯针对 和 定义两种不同的贝塞尔函数(这样做能带来好处,比如消除了函数在 点的不光滑性)。
  • 我不知道这句话的内容,但它似乎是描述了一个链接的块列表。 一般来说,“块”是少量字节(通常是2的幂)。 它可能是4096字节,它可能是512字节,这取决于。 硬盘驱动器的设计是一次检索一个数据块的数据; 如果你想获得第1234567个字节,你必须得到它所在的整个块。一个“单词”要小得多,并且指的是一个单一的数字。 它可能低至2个字节(16位)或高达8个字节(64位); 再次,这取决于文件系统。 当然,块和单词并不全是文件系统。 文件系统通常实现某种类型的B树来快速查找(它不必搜索整个文件系统来查找文件,只需 ...
  • 每当您想要控制应用程序中多个线程的执行时。 虽然这不仅意味着只有一个线程增加了计数器; 但让事件发起/停止或暂停。 请参阅WaitHandles - Auto / ManualResetEvent和Mutex - 编辑 - WaitHandle是“使用”来控制线程执行的机制。 它不是关于在线程中不能访问的句柄; 它关于在线程内使用它们。 这可能是一个很好的例子,但请忍受我; 想一想,一位女士给五个女孩给了五个不同的口音,并告诉他们,一旦发生什么something就会吹口哨。 这个过程是为每个女孩吹口哨,女士 ...
  • Qt是一个庞大的框架,具有用于处理GUI,网络,数据库和各种事物的库。 它有很好的文档记录,所以请看看如何在诺基亚网站上学习Qt 。 话虽如此,这里有一些基本概念: Qt是一个框架。 这意味着您可以围绕响应事件来组织代码。 最重要的是,你没有“主循环”。 你的main看起来像这样: QApplication app(argc, argv); MyMainWindow win; win.show(); return app.exec(); 信号和插槽。 Qt使用信号和插槽的概念以一种彻底解耦的方式连接程 ...