当前位置: 首页 > 知识库问答 >
问题:

solr和lucene中的索引存储

皇甫雨石
2023-03-14

我已经通过了lucene索引机制。我有一些疑问,我找不到一个直截了当的答案,我仍然对我在几篇参考文献中的阅读感到困惑。

考虑使用Lucene对数据库表进行索引。

假设该表有10列,其中很少有caseid、modifiedby、modifiedtime、casename、legalname等。。。

现在,如果我创建一个索引的情况下,那么在搜索是不是可以搜索的基础上修改字段???

假设我在2列caseid和modifiedby上创建了一个索引,那么索引将如何进行,以及与前一列类似的疑问:我们可以基于未索引的合法名称进行搜索吗??

共有2个答案

叶英哲
2023-03-14

现在,如果我创建一个索引的情况下,那么在搜索是不是可以搜索的基础上修改字段???

将“indexed=true”设置为所有需要索引的字段。我不明白你为什么害怕索引所有你需要的列。

你不觉得MySQL索引有问题吗?

屈宏爽
2023-03-14

如果我正确理解了你的意图(我在搜索领域工作,这里不仅仅是一堆文字,它也与意图有关:),那么你就可以:

解决方案1

步骤1:在模式中创建一个字段,例如,将其称为数据(不要忘记将其标记为多值)。xml,类似于:

<field name="Data" type="text" indexed="true" stored="true" required="false" multiValued="true" />

步骤2:您可以使用模式中的copyfield指令将要搜索的所有字段的内容复制到数据(上面创建的)中。xml类似于

<copyField source="caseId" dest="Data" />
<copyField source="modifiedBy" dest="Data" />
<copyField source="casename" dest="Data" />

步骤3:将默认搜索字段()标记为schema.xml中的数据

现在,当您发出查询时,它将搜索您复制到数据中的所有字段。

解决方案2

还有一种替代解决方案,在查询本身中,您可以指定字段名,例如q=Hello casename:Hello(在这种特定情况下,它将在标记为default的字段中搜索Hello,并在casename中搜索Hello)。查询中可以有多个搜索声明。但我建议我以前的方法

 类似资料:
  • bugu-mongo 2.x版本集成了Lucene的功能。当往MongoDB中新增一个Document时,能自动为该Document建立Lucene索引。相应的,当MongoDB中的Document被修改、删除时,对应的Lucene索引也会修改、删除。 另外,bugu-mongo还提供了对Lucene搜索的支持。根据Lucene索引进行搜索的时候,搜索结果能自动转换成对应的Entity对象。 在L

  • 我们在各种搜索应用程序中使用solr索引。在大多数情况下,我们使用它就像您使用管理界面一样。例如: 这个很好用 我的问题是,在一个应用程序中,我们直接对索引使用复杂的lucene查询(不使用solr),在这些查询中,我找不到如何搜索日期字段 在模式中。xml: 看起来solr将日期存储为以毫秒为单位的unix时间,当从索引中提取字段时,它看起来1336867200000 在Lucene中,我尝试了

  • 问题内容: 我知道Lucene和Solr是两个不同的Apache项目,它们可以一起工作,但是我不明白每个项目的目的是什么。 据我所知,到目前为止,Lucene用于创建搜索索引,Solr使用该索引执行搜索。我是对的还是这是完全不同的方法? 问题答案: @darkheir:Lucene和Solr是两个可以一起工作的Apache项目,我不明白每个项目的目的是什么。 1)Solr在引擎盖下使用Lucene

  • 我知道Lucene和Solr是两个不同的Apache项目,它们是一起工作的,但我不明白每个项目的目标是什么。 到目前为止,我所理解的是,Lucene用于创建搜索索引,而Solr使用该索引执行搜索。我是对的还是这是一个完全不同的方法?

  • Apache Lucene and Solr have separate repositories now! Solr has become a top-level Apache project and main linedevelopment for Lucene and Solr is happening in eachproject's git repository now: Lucene:

  • 在测试此文本时,我在要在文本中搜索的列上创建了lucene(3.0.1)索引: 如果我按关键字搜索,它会给出结果,但按 我正在使用standardAnalyzer: 因为已设置,它应创建令牌,并且应存在$GLD。Analyzer将从文本中删除停止字,因为word也将在该过程中删除。