2016-04-21 6 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" /> 

Есть ли способ для подготовки запросов, которые дадут мне некоторые интересные факты и цифры о индексе?

Например:

  • Лучшие десять компаний, которые имеют записи (и количество уведомлений для каждого)
  • Количество уведомлений, опубликованных каждый год
  • Наиболее и наименее популярный день/месяц для опубликования сообщений
  • Самый популярный час дня для опубликования сообщений
  • Серия уведомление (по количеству символов)

На данный момент я не уверен, если это может быть сделано с некоторым умным синтаксисом запроса, или, если мне нужно использовать использование модуля (статистический/Analytics?)

ответ

1
  1. Топ десять компаний которые имеют записи (и количество уведомлений для каждого): Facet on company, do : -search. Если для каждого уведомления есть документ, вы получите желаемый результат в запросе огранки.
  2. Количество сообщений, публикуемых каждый год: Имеет ли диапазон огранки в datetime с годом в качестве пробела.
  3. Самый популярный день/месяц для публикации уведомлений: Добавить два явных поля для дня и месяца и фасет на них. Может быть, также указать день недели, пока вы на нем?
  4. Самый популярный час дня публикации уведомлений: Создайте поле, содержащее только час, грань на этом.
  5. Наибольшее извещение (по количеству символов): Запрос функции является кандидатом здесь, но нет функции strLength. Кроме того, это не сработает, поскольку вы используете текстовое поле для уведомлений. Вместо этого вы можете ввести новое поле, содержащее длину уведомления и отсортировать по нему.
Смежные вопросы