lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marc Sturlese (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (SOLR-1901) bug using distributed search, highlighting and q.alt
Date Wed, 20 Oct 2010 07:53:24 GMT

    [ https://issues.apache.org/jira/browse/SOLR-1901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922881#action_12922881
] 

Marc Sturlese edited comment on SOLR-1901 at 10/20/10 3:52 AM:
---------------------------------------------------------------

Thanks Koji, this properly fix my problem. I'm going to close this issue

      was (Author: sturlese):
    Thanks Koji, this properly fix my problem.
  
> bug using distributed search, highlighting and q.alt
> ----------------------------------------------------
>
>                 Key: SOLR-1901
>                 URL: https://issues.apache.org/jira/browse/SOLR-1901
>             Project: Solr
>          Issue Type: Bug
>          Components: SearchComponents - other
>    Affects Versions: 1.5
>            Reporter: Marc Sturlese
>            Priority: Minor
>             Fix For: 3.1
>
>
> 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)));
>       }
>     }
>   } 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message