Solr - Использование фасетов для суммирования документов на основе геохешей переменной точности - PullRequest
0 голосов
/ 10 января 2012

Есть ли способ получить количество фасетов на основе подстроки поля фасетов, схожего с EdgeNGram?


Я использую solr для хранения строк геохеша с высокой точностью и хочу подсчитать количество документов с определенной точностью геохеша. Фасеты используются для подсчета документов в определенной ячейке геохеша.

На данный момент единственный способ сделать это - использовать уровни геохэш.

например. Текущий набор результатов фасетов (из проиндексированных данных):

<lst name="facet_counts">
 <lst name="facet_fields">
  <int name="svztdm7w">11</int>
  <int name="sv87rzt8">3</int>
  <int name="sv83t6bf">2</int>
  <int name="syqxp43m">4</int>
  <int name="syr9f0v2">4</int>
  <int name="syp8p8hb">3</int>
  <int name="tuuttmtt">3</int>
  <int name="twj1ynm3">3</int>
  <int name="w30n6u71">3</int>
 </lst>
</lst>

Что я хочу с точностью до 1 настройки:

<int name="s">27</int>
<int name="t">6</int>
<int name="w">3</int>

Что я хочу с точностью 2:

<int name="sv">16</int>
<int name="sy">11</int>
<int name="tu">3</int>
<int name="tw">3</int>
<int name="w3">3</int>

Приветствие.

1 Ответ

0 голосов
/ 10 января 2012

Я много работал с геохэшами в Solr;моя последняя работа - LSP: http://code.google.com/p/lucene-spatial-playground/, которая имеет различные стратегии индексации, включая геохеш.Если вы ищете мое имя и геохэш, вы найдете различный материал.

Похоже, что вы ищете, по сути, это тепловая карта на основе геохеша.Это что-то в моем списке TODO для LSP, но в то же время вы можете получить его, немного изменив порядок индексации геохешей.После n-граммирования ребра вашего геохеша добавьте перед геохэшом начальное число, равное длине геохеша.Например, вместо «16», индекс «216».Используйте шестнадцатеричное обозначение, чтобы вы могли получить 16 значений в одном символе вместо десятичных десятичных чисел. При фасетировании используйте facet.prefix = 2.

Удачи и оставайтесь на связи.

...