2016-04-21 179 views
0

我有一个Solr 4实例正在运行,它有大约两百万条由证券交易所发布的通知。为了让你的架构的想法,主要成分如下:Solr索引分析

<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
  1. 前十大公司有条目(和每个通知的数量):方面公司,做一个 - 搜索。如果每个通知都有一个文档,您会在分面请求中得到想要的结果。
  2. 每年发布的通知数量:日期时间范围构成以年份为差距。
  3. 用于发布通知的最受欢迎的日/月:为这些日期和月份添加两个显式字段以及方面。也许还可以在工作日索引,而你在这里?
  4. 当天发布通告的最热门时段:制作一个只包含小时的区域,方面。
  5. 最长通知(按字符数):功能查询是这里的候选人,但没有strLength函数。此外,当您为通知使用文本字段时,它不起作用。相反,您可以引入一个包含通知长度的新字段并对其进行排序。