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

Lucene中多值字段的性能问题

陶博赡
2023-03-14

我们使用Lucene4.7构建和查询一个相当大的数据集(1亿1千万以上的文档)。

<field name="topic_paths"
       type="string"
       indexed="false"
       stored="false"
       docValues="true"
       multiValued="true"
       termVectors="false"
       termPositions="false"
       termOffsets="false"/>

详情:

  • 硬件:Xen VM,8核至强CPU E5-2670 v2,2.5GHz,64 GB RAM
  • 操作系统:Windows Server 2012标准
  • JVM:以-xmx8000m开始(Lucene使用了其中的45%)
  • Lucene查询是单线程的

共有1个答案

宋凌龙
2023-03-14

阅读本文,http://wiki.apache.org/solr/schemaxml#fields

您需要“索引”您的字段以便将其包含到搜索/方面,否则Solr将毫无例外地跳过此字段

 类似资料:
  • 改进Lucene索引性能的方法有很多,我从这个网站上得到了许多改进索引速度的技巧,包括: 多线程在索引中的应用通过覆盖IndexWriter的几个方法,即:,这给我带来了大量的性能改进(大约快了7、8倍)。 重用文档和字段实例。根据提示,它说:“最好创建一个文档实例,然后向其中添加多个字段实例,但保留这些字段实例,并通过为每个添加的文档更改它们的值来重用它们”。 任何关于“如何实现重用文档和字段”

  • 我有一个带有搜索功能的spring MVC应用程序。 虚拟查询生成器 现在,这个虚拟查询生成器不支持通配符或任何其他类型。我正在学习Apache Lucene Query API(还添加了Lucene Core-7.7.1来进行项目)和一大堆教授如何使用不同类型的查询实现(TermQuery、PhraseQuery、BooleanQuery等)的文章,但这根本没有意义。最后,我仍然手动构建查询。

  • 我目前正在节点中创建一个discord bot。js,并不断得到这个问题。我正在尝试创建一个help命令,但我想在执行该命令之前确保嵌入和填充工作正常,我一直遇到这个奇怪的错误。我放了两个代码示例,一个是命令的代码,另一个是使命令实际工作的代码。有人能帮忙吗? } }); 下面是错误: RangeError[嵌入字段值]:消息嵌入字段值不能为空。在功能上。规范化字段(C:\Users\Chunko

  • 我在我的应用程序中使用Hibernate搜索。其中一个子集合映射为IndexeDemBedded。子对象有两个字段,一个是id,另一个是date(使用date resoultion到毫秒)。当我搜索ID=1(或某个值)并且date等于另一个值时,我会得到第一个和第二个匹配的所有情况的结果。我只想在同一个孩子中获得两个字段匹配的记录,但我在不同的孩子中获得匹配,结果会高得多。下面是代码片段 主类是用

  • 问题内容: 我在Access中创建了一个查找表,以提供列的可能值。现在,我需要使用转换列之前的数据来更新此列。我无法弄清楚将运行的SQL查询。我不断收到错误消息“ UPDATE或DELETE查询不能包含多值字段。” 我的研究表明,我只需要设置列的值,但这总是更新0条记录: 我知道如果更改它以更新文本列,此查询将起作用,因此仅此列绝对是一个问题。 问题答案: 如果要将值添加到多值字段,请使用追加查询

  • 我试图创建自己的StopFilter实现,它将根据其他字段选择术语。 是否有一种方法可以从标记筛选器访问文档,然后访问其他字段? (我想使用UpdateRequestProcessor来通知我的TokenFilter关于状态的信息,但我没有找到很好的方法) 谢谢,本尼