You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Dale McDiarmid <da...@ravn.co.uk> on 2013/03/05 11:43:27 UTC

MLT with Clustering

Hi,
I'm about to take a look at the source to debug this but any input
 appreciated. I'm trying to cluster mlt results. Clustering works, MLT
works, but MLT query with clustering does not. My query handler is....

<requestHandler name="/mlt_clustering" class="solr.MoreLikeThisHandler">
    <lst name="defaults">
        <str name="mlt.fl">title,text</str>
        <str name="mlt.qf">title^1.5 text</str>
        <str name="mlt.mintf">1</str>
        <str name="mlt.mindf">1</str>
        <str name="mlt.boost">true</str>
        <str name="mlt.match.include">false</str>
        <bool name="clustering">true</bool>
        <str name="clustering.engine">default</str>
        <bool name="clustering.results">true</bool>
        <!-- The title field -->
        <str name="carrot.title">title</str>
        <str name="carrot.url">id</str>
        <!-- The field to cluster on -->
        <str name="carrot.snippet">text</str>
        <!-- produce summaries -->
        <bool name="carrot.produceSummary">true</bool>
        <!-- the maximum number of labels per cluster -->
        <!--<int name="carrot.numDescriptions">5</int>-->
        <!-- produce sub clusters -->
        <bool name="carrot.outputSubClusters">false</bool>
        <str name="defType">edismax</str>
        <str name="qf">text^0.5 title^1.2</str>
        <str name="q.alt">*:*</str>
        <str name="rows">10</str>
        <str name="fl">*,score</str>
    </lst>
    <arr name="components">
      <str>clustering</str>
    </arr>
</requestHandler>

Does the MLTHandler support components? In theory this should work....the
response of MLT is identical to a query and the clustering lib just reads
the configured text fields and adds a clustering response.

Re: MLT with Clustering

Posted by Dale McDiarmid <da...@ravn.co.uk>.
If i go down that route, all query parameters will apply to the search
results, and MLT will be calculated on those search results.
Clustering will also be calculated on search results... not on the MLT
results.


On Tue, Mar 5, 2013 at 11:56 AM, Upayavira <uv...@odoko.co.uk> wrote:

> You can use more like this as a component, but you don't get info about
> what terms made the documents similar.
>
> If you don't need that stuff, then just have MLT and clustering as
> components within a standard SearchHandler.
>
> Upayavira
>
> On Tue, Mar 5, 2013, at 11:53 AM, Dale McDiarmid wrote:
> > code seems to indicate MLTHandler doesn't support components...best route
> > here seems to create my own handler.
> >
> >
> > On Tue, Mar 5, 2013 at 10:43 AM, Dale McDiarmid <da...@ravn.co.uk> wrote:
> >
> > > Hi,
> > > I'm about to take a look at the source to debug this but any input
> > >  appreciated. I'm trying to cluster mlt results. Clustering works, MLT
> > > works, but MLT query with clustering does not. My query handler is....
> > >
> > > <requestHandler name="/mlt_clustering"
> class="solr.MoreLikeThisHandler">
> > >     <lst name="defaults">
> > >         <str name="mlt.fl">title,text</str>
> > >         <str name="mlt.qf">title^1.5 text</str>
> > >         <str name="mlt.mintf">1</str>
> > >         <str name="mlt.mindf">1</str>
> > >         <str name="mlt.boost">true</str>
> > >         <str name="mlt.match.include">false</str>
> > >         <bool name="clustering">true</bool>
> > >         <str name="clustering.engine">default</str>
> > >         <bool name="clustering.results">true</bool>
> > >         <!-- The title field -->
> > >         <str name="carrot.title">title</str>
> > >         <str name="carrot.url">id</str>
> > >         <!-- The field to cluster on -->
> > >         <str name="carrot.snippet">text</str>
> > >         <!-- produce summaries -->
> > >         <bool name="carrot.produceSummary">true</bool>
> > >         <!-- the maximum number of labels per cluster -->
> > >         <!--<int name="carrot.numDescriptions">5</int>-->
> > >         <!-- produce sub clusters -->
> > >         <bool name="carrot.outputSubClusters">false</bool>
> > >         <str name="defType">edismax</str>
> > >         <str name="qf">text^0.5 title^1.2</str>
> > >         <str name="q.alt">*:*</str>
> > >         <str name="rows">10</str>
> > >         <str name="fl">*,score</str>
> > >     </lst>
> > >     <arr name="components">
> > >       <str>clustering</str>
> > >     </arr>
> > > </requestHandler>
> > >
> > > Does the MLTHandler support components? In theory this should
> work....the
> > > response of MLT is identical to a query and the clustering lib just
> reads
> > > the configured text fields and adds a clustering response.
> > >
>

Re: MLT with Clustering

Posted by Upayavira <uv...@odoko.co.uk>.
You can use more like this as a component, but you don't get info about
what terms made the documents similar.

If you don't need that stuff, then just have MLT and clustering as
components within a standard SearchHandler.

Upayavira

On Tue, Mar 5, 2013, at 11:53 AM, Dale McDiarmid wrote:
> code seems to indicate MLTHandler doesn't support components...best route
> here seems to create my own handler.
> 
> 
> On Tue, Mar 5, 2013 at 10:43 AM, Dale McDiarmid <da...@ravn.co.uk> wrote:
> 
> > Hi,
> > I'm about to take a look at the source to debug this but any input
> >  appreciated. I'm trying to cluster mlt results. Clustering works, MLT
> > works, but MLT query with clustering does not. My query handler is....
> >
> > <requestHandler name="/mlt_clustering" class="solr.MoreLikeThisHandler">
> >     <lst name="defaults">
> >         <str name="mlt.fl">title,text</str>
> >         <str name="mlt.qf">title^1.5 text</str>
> >         <str name="mlt.mintf">1</str>
> >         <str name="mlt.mindf">1</str>
> >         <str name="mlt.boost">true</str>
> >         <str name="mlt.match.include">false</str>
> >         <bool name="clustering">true</bool>
> >         <str name="clustering.engine">default</str>
> >         <bool name="clustering.results">true</bool>
> >         <!-- The title field -->
> >         <str name="carrot.title">title</str>
> >         <str name="carrot.url">id</str>
> >         <!-- The field to cluster on -->
> >         <str name="carrot.snippet">text</str>
> >         <!-- produce summaries -->
> >         <bool name="carrot.produceSummary">true</bool>
> >         <!-- the maximum number of labels per cluster -->
> >         <!--<int name="carrot.numDescriptions">5</int>-->
> >         <!-- produce sub clusters -->
> >         <bool name="carrot.outputSubClusters">false</bool>
> >         <str name="defType">edismax</str>
> >         <str name="qf">text^0.5 title^1.2</str>
> >         <str name="q.alt">*:*</str>
> >         <str name="rows">10</str>
> >         <str name="fl">*,score</str>
> >     </lst>
> >     <arr name="components">
> >       <str>clustering</str>
> >     </arr>
> > </requestHandler>
> >
> > Does the MLTHandler support components? In theory this should work....the
> > response of MLT is identical to a query and the clustering lib just reads
> > the configured text fields and adds a clustering response.
> >

Re: MLT with Clustering

Posted by Dale McDiarmid <da...@ravn.co.uk>.
code seems to indicate MLTHandler doesn't support components...best route
here seems to create my own handler.


On Tue, Mar 5, 2013 at 10:43 AM, Dale McDiarmid <da...@ravn.co.uk> wrote:

> Hi,
> I'm about to take a look at the source to debug this but any input
>  appreciated. I'm trying to cluster mlt results. Clustering works, MLT
> works, but MLT query with clustering does not. My query handler is....
>
> <requestHandler name="/mlt_clustering" class="solr.MoreLikeThisHandler">
>     <lst name="defaults">
>         <str name="mlt.fl">title,text</str>
>         <str name="mlt.qf">title^1.5 text</str>
>         <str name="mlt.mintf">1</str>
>         <str name="mlt.mindf">1</str>
>         <str name="mlt.boost">true</str>
>         <str name="mlt.match.include">false</str>
>         <bool name="clustering">true</bool>
>         <str name="clustering.engine">default</str>
>         <bool name="clustering.results">true</bool>
>         <!-- The title field -->
>         <str name="carrot.title">title</str>
>         <str name="carrot.url">id</str>
>         <!-- The field to cluster on -->
>         <str name="carrot.snippet">text</str>
>         <!-- produce summaries -->
>         <bool name="carrot.produceSummary">true</bool>
>         <!-- the maximum number of labels per cluster -->
>         <!--<int name="carrot.numDescriptions">5</int>-->
>         <!-- produce sub clusters -->
>         <bool name="carrot.outputSubClusters">false</bool>
>         <str name="defType">edismax</str>
>         <str name="qf">text^0.5 title^1.2</str>
>         <str name="q.alt">*:*</str>
>         <str name="rows">10</str>
>         <str name="fl">*,score</str>
>     </lst>
>     <arr name="components">
>       <str>clustering</str>
>     </arr>
> </requestHandler>
>
> Does the MLTHandler support components? In theory this should work....the
> response of MLT is identical to a query and the clustering lib just reads
> the configured text fields and adds a clustering response.
>