Solr指数分析

时间:2016-04-21 17:34:00

标签: solr

我有一个Solr 4实例正在运行,它有大约两百万个条目,这些条目是由证券交易所发布的通知。为了让您了解架构,主要组件如下:

<field name="UID" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="company" type="text_general" indexed="true" stored="true" />
<field name="datetime" type="date" indexed="true" stored="true" />
<field name="title" type="text_general" indexed="true" stored="true" />
<field name="url" type="text_general" indexed="true" stored="true" />
<field name="notice" type="text_general" indexed="true" stored="true" />
<field name="cachefile" type="text_general" indexed="true" stored="true" />

有没有办法准备一些查询,这些查询会给我一些关于索引的有趣事实和数据?

例如:

  • 拥有参赛作品的十大公司(以及每个参赛作品的通知数量)
  • 每年发布的通知数
  • 发布通知的最受欢迎日期/月份
  • 发布通知当天最受欢迎的时段
  • 最长的通知(按字符数)

目前我不确定是否可以使用一些聪明的查询语法,或者我是否需要使用模块(统计/分析?)

1 个答案:

答案 0 :(得分:1)

  1. 拥有条目的十大公司(以及每条公告的通知数量):面对公司,进行 - 搜索。如果每个通知都有一个文档,您将在分面请求中获得所需的结果。
  2. 每年发布的通知数量:将日期时间范围与年份区分开来。
  3. 发布通知的最受欢迎日期/月份:为日期和月份添加两个显式字段,并在这些字段上添加facet。也许你也可以在工作日编制索引吗?
  4. 发布通知当天最受欢迎的小时:制作一个仅包含小时,字面的字段。
  5. 最长通知(按字符数):函数查询是此处的候选者,但没有strLength函数。此外,它不适用于您使用文本字段的通知。相反,您可以引入一个新字段,其中包含通知的长度并对其进行排序。