2015-02-18 3 views
0

Я использую «Facet», чтобы найти количество 3 самых повторяющихся слов в определенном поле, например «msgs», в котором содержится более 10 000 записей. , и я получаю аналогичный результат.Solr Query для отображения выбранных полей

word1 1600 word2 1536 word3 956

Теперь, вместе с графом, я хочу, чтобы отобразить эти конкретные поля, которые содержат указанные выше слова. Какие-либо предложения??

+0

что вы хотите делать с полями? вы хотите динамически указывать огранку в каком-либо поле? – Mysterion

+0

Нет ... Я просто хочу отображать поля вместе со словом, которое я получаю от грани – Danny

+0

, поэтому вы спрашиваете, как отобразить ответ? – Mysterion

ответ

0

Хорошо. Надеюсь, я понимаю, что вам нужно. Вы можете попробовать запрос похож на этот:

http://solrhost:solrport/solr/select?q=your_query&rows=0&facet=true&facet.limit=-1&facet.field=your_facet_field1&facet.field=your_facet_field2 

где

solrhost - Solr адрес

solrport - порт Solr (по умолчанию 8983)

your_facet_field1 и т.д. - ваши полевые сссылки

your_query может быть : если вы хотите, чтобы каждый документ фасет

Результат будет выглядеть примерно так:

<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="your_facet_field1"> 
      <int name="search">0</int> 
      <int name="memory">0</int> 
      <int name="graphics">0</int> 
      <int name="card">0</int> 
      <int name="music">1</int> 
      <int name="software">0</int> 
      <int name="electronics">3</int> 
      <int name="copier">0</int> 
      <int name="multifunction">0</int> 
      <int name="camera">0</int> 
      <int name="connector">2</int> 
      <int name="hard">0</int> 
      <int name="scanner">0</int> 
      <int name="monitor">0</int> 
      <int name="drive">0</int> 
      <int name="printer">0</int> 
     </lst> 
     <lst name="your_facet_field2"> 
      <int name="false">3</int> 
      <int name="true">1</int> 
     </lst> 
     </lst> 
    </lst> 
</response> 
+0

Это мой запрос выбрать? Д = сбщ% 3A * & П = сбщ & мас = XML & отступа = истина & фасет = истина & facet.query = сбщ & facet.field = сбщ & facet.limit = 3 Выходной сигнал счетчика фасета похож на это. word1 1600 word2 1536 word3 956 Теперь в дополнение к этому, я также хочу, чтобы отобразить только те поля, которые содержат указанные выше слова – Danny

+0

так, могли бы вы привести пример? – Mysterion

+0

Я не знаю, как действовать дальше.Я должен отображать поля из столбца «msgs», которые содержат слово «word1» и «word2» и «word3» отдельно – Danny

Смежные вопросы