Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-1901

bug using distributed search, highlighting and q.alt

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.5
    • 3.1
    • None

    Description

      I have noticed when using q.alt even if hl=true highlights are not returned.
      When using distributed search, q.alt and hl, HighlightComponent.java
      finishStage expects the highlighting NamedList of each shard (if hl=true)
      but it will never be returned. It will end up with a NullPointerExcepion.
      I have temporally solved it checking that highlight NamedList is always
      returned for each shard. If it's not the case, highlights are not added to
      the response:

      @Override
      public void finishStage(ResponseBuilder rb) {
      boolean hasHighlighting = true ;
      if (rb.doHighlights && rb.stage == ResponseBuilder.STAGE_GET_FIELDS) {

      Map.Entry<String, Object>[] arr = new
      NamedList.NamedListEntry[rb.resultIds.size()];

      // TODO: make a generic routine to do automatic merging of id keyed
      data
      for (ShardRequest sreq : rb.finished) {
      if ((sreq.purpose & ShardRequest.PURPOSE_GET_HIGHLIGHTS) == 0)
      continue;
      for (ShardResponse srsp : sreq.responses) {
      NamedList hl =
      (NamedList)srsp.getSolrResponse().getResponse().get("highlighting");
      if(hl != null) {
      for (int i=0; i<hl.size(); i++)

      { String id = hl.getName(i); ShardDoc sdoc = rb.resultIds.get(id); int idx = sdoc.positionInResponse; arr[idx] = new NamedList.NamedListEntry(id, hl.getVal(i)); }

      } else

      { hasHighlighting = false; }

      }
      }

      // remove nulls in case not all docs were able to be retrieved
      if(hasHighlighting)

      { rb.rsp.add("highlighting", removeNulls(new SimpleOrderedMap(arr))); }

      }
      }

      Attachments

        Activity

          People

            Unassigned Unassigned
            sturlese Marc Sturlese
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: