I'm trying to get Solr to run warming queries in parallel with
listener events, but it always does them in sequence, pegging one CPU
while calculating facet counts.

Someone at Lucid Imagination suggested using multiple <listenever
event="firstSearcher"> tags, each with a single facet query in them,
but those are still done in parallel.

Is it possible to run warming queries in parallel, and if so, how?

I'm aware that you could run an external script that forks, but I'd
like to use Solr's native support for this if it exists.

Examples that don't work:

<!-- runs in sequence: multiple facet queries in a single <listener> -->
<query>
  <listener event="firstSearcher" class="solr.QuerySenderListener">
    <arr name="queries">
      <lst><str name="q">*:*</str><str name="facet.field">field1</str></lst>
      <lst><str name="q">*:*</str><str name="facet.field">field2</str></lst>
      <lst><str name="q">*:*</str><str name="facet.field">field3</str></lst>
      <lst><str name="q">*:*</str><str name="facet.field">field4</str></lst>
    </arr>
  </listener>
</query>

<!-- runs in sequence: queries distributed across separate <listener> tags -->
<query>
  <listener event="firstSearcher" class="solr.QuerySenderListener">
    <arr name="queries">
      <lst><str name="q">*:*</str><str name="facet.field">field1</str></lst>
    </arr>
  </listener>
  <listener event="firstSearcher" class="solr.QuerySenderListener">
    <arr name="queries">
      <lst><str name="q">*:*</str><str name="facet.field">field2</str></lst>
    </arr>
  </listener>
  <listener event="firstSearcher" class="solr.QuerySenderListener">
    <arr name="queries">
      <lst><str name="q">*:*</str><str name="facet.field">field3</str></lst>
    </arr>
  </listener>
  <listener event="firstSearcher" class="solr.QuerySenderListener">
    <arr name="queries">
      <lst><str name="q">*:*</str><str name="facet.field">field4</str></lst>
    </arr>
  </listener>
</query>

Reply via email to