繁体   English   中英

solr和lucene中的索引存储

[英]Index storage in solr and lucene

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

考虑使用Lucene为数据库表建立索引。

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

现在,如果我在案例ID上创建索引,则在搜索时是否可以基于字段修改来搜索?

假设我在caseid的2列上创建了一个索引,然后对其进行了修改,那么将如何进行索引,并且可以基于未索引的合法名称搜索与上一个相似的疑问?

如果我正确理解了您的意图(我在Search Domain工作,不仅涉及单词,也涉及意图:)),那么您可以:

解决方案1

步骤1 :在您的schema.xml中创建一个字段,例如将其命名为Data(不要忘记将其标记为多值),例如:

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

第2步 :您可以使用schema.xml中的copyfield指令将要搜索的所有字段的内容复制到Data(上面创建的),例如

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

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

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

解决方案2

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

现在,如果我在案例ID上创建索引,则在搜索时是否可以基于字段修改来搜索?

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

您不对MySQL索引感到困惑吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM