Как выбрать отличное использование значений полей Solr?

Я хотел бы сделать эквивалент этого SQL, но с Solr как мое хранилище данных.

SELECT
   DISTINCT txt
FROM
   my_table;

Какой синтаксис вынудил бы Solr только дать мне отличные значения?

http://localhost:8983/solr/select?q=txt:?????&fl=txt

Править: Таким образом, фасетированный поиск, кажется, соответствует, но поскольку я исследовал его, я понял, что только детализировал половину проблемы.

Мой SQL-запрос должен был читать...

SELECT
   DISTINCT SUBSTR(txt,0,3)
FROM
   my_table;

Возможность этого с Solr?

52
задан dacracot 11 May 2010 в 09:37
поделиться

3 ответа

Я бы хранил подстроку в другом поле (назовем его txt_substring), а затем сделал фасет по txt_substring, как показал CraftyFella.

Обычно я бы использовал n-gram tokenizer, но я не думаю, что на нем можно делать фасет.

4
ответ дан 7 November 2019 в 09:19
поделиться

взгляните на многогранный поиск

1
ответ дан 7 November 2019 в 09:19
поделиться

Фасеттинг даст вам набор результатов, содержащий различные значения для поля.

Например,

http://localhost:8983/solr/select/?q=*%3A*&rows=0&facet=on&facet.field=txt

Вы должны получить что-то вроде этого:

<response>
<responseHeader><status>0</status><QTime>2</QTime></responseHeader>
<result numFound="4" start="0"/>
<lst name="facet_counts">
 <lst name="facet_queries"/>
 <lst name="facet_fields">
  <lst name="txt">
        <int name="value">100</int>
        <int name="value1">80</int>
        <int name="value2">5</int>
        <int name="value3">2</int>
        <int name="value4">1</int>
  </lst>
 </lst>
</lst>
</response>

Посмотрите вики для получения дополнительной информации. Фасеттинг - это действительно классная часть solr. Наслаждайтесь :)

http://wiki.apache.org/solr/SimpleFacetParameters#Facet_Fields

Примечание: Faceting покажет индексированное значение, т.е. после применения всех фильтров. Один из способов обойти это - использовать метод copyfield, чтобы создать фасетную версию поля txt. Таким образом, ваши результаты будут показывать оригинальное значение.

Надеюсь, это поможет. Много документации по фасетам доступно на вики. Или я написал несколько со снимками экрана, которые вы можете посмотреть здесь:

http://www.craftyfella.com/2010/01/faceting-and-multifaceting-syntax-in.html

72
ответ дан 7 November 2019 в 09:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: