Dear Wiki user, You have subscribed to a wiki page or wiki category on "Solr Wiki" for change notification.
The "FieldCollapsing" page has been changed by martijn. http://wiki.apache.org/solr/FieldCollapsing?action=diff&rev1=5&rev2=6 -------------------------------------------------- = Field Collapsing = + /!\ This referes to functionality from [[https://issues.apache.org/jira/browse/SOLR-236|SOLR-236]]] + This patch is not complete, but it will be useful to keep this page updated while the interface evolves. + From [[http://www.fastsearch.com/glossary.aspx?m=48&amid=299|fast search]]] + + {{{ - /!\ This referes to functionality from [[https://issues.apache.org/jira/browse/SOLR-236|SOLR-236]]] - - This patch is not complete, but it will be useful to keep this page updated while the interface evolves. - - From [[http://www.fastsearch.com/glossary.aspx?m=48&amid=299|fast search]]] - {{{ "Used in order to collapse a group of results with similar value for a given field to a single entry in the result set. Site collapsing is a special case of this, where all results for a given web site is collapsed into one or two entries in the result set, typically with an associated "more documents from this site" link. See also Duplicate detection." + }}} - }}} - - This topic was discussed a while ago: http://www.nabble.com/result-grouping--tf2910425.html#a8131895 + This topic was discussed a while ago: http://www.nabble.com/result-grouping--tf2910425.html#a8131895 == Setup == + The easiest way to configure field collapsing is by overriding the query component. This can be achieved by adding the following xml in your solrconfig.xml: - - To use field collapsing, you'll first need to install the patch. Then you'll need to edit your solrconfig.xml. First, register the collapse searchComponent like this: {{{ - <searchComponent name="collapse" class="org.apache.solr.handler.component.CollapseComponent" /> + <searchComponent name="query" class="org.apache.solr.handler.component.CollapseComponent" /> }}} + That is all, now you can have field collapse enabled searches. The CollapseComponents extends from the QueryComponent, so a normal search is still possible. + If you wish to use both the QueryComponent and the CollapseComponent along side each other then you need to configure a little bit more in your solrconfig.xml. First, register the collapse searchComponent like this: + + {{{ + <searchComponent name="collapse" class="org.apache.solr.handler.component.CollapseComponent" /> + }}} Then reference that search component in a custom search handler. For example, you could modify the standard request handler to look like this: {{{ @@ -29, +32 @@ <!-- default values for query parameters --> <lst name="defaults"> <str name="echoParams">explicit</str> - + </lst> <arr name="components"> - <str>collapse</str> + <str>collapse</str> - <str>facet</str> + <str>facet</str> - <str>highlight</str> + <str>highlight</str> - <str>debug</str> + <str>debug</str> </arr> </requestHandler> }}} - Note that we have not included "query" in the list of component; the collapse handler implements query functionality itself. == Parameters == - - - || '''param''' || '''description''' || + ||'''param''' ||'''description''' || - || collapse.type || normal/adjacent -- does this collapse all fields or just the ones that are next to each other. Defaults to normal || + ||collapse.type ||normal/adjacent -- does this collapse all fields or just the ones that are next to each other. Defaults to normal || - || collapse.field || Which field to collapse || + ||collapse.field ||Which field to collapse. If this field is not specified then field collapsing is not enabled and falls back to to the QueryComponent to do a search. || - || collapse.facet || before/after -- apply faceting before or after collapsing. Defaults to after || + ||collapse.facet ||before/after -- apply faceting before or after collapsing. Defaults to after || - || collapse.max || Deprecated use collapse.threshold instead || + ||collapse.max ||Deprecated use collapse.threshold instead || - || collapse.threshold || The number of documents with the same value for collapse.field after which collapsing kicks in || + ||collapse.threshold ||The number of documents with the same value for collapse.field after which collapsing kicks in || - || collapse.maxdocs || Maximum number of documents to process during field collapsing || + ||collapse.maxdocs ||Maximum number of documents to process during field collapsing || - || collapse.info.doc || Return collapse count for each document? Defaults to true || + ||collapse.info.doc ||Return collapse count for each document? Defaults to true || - || collapse.info.count || Return collapse count for each field value? Defaults to true || + ||collapse.info.count ||Return collapse count for each field value? Defaults to true || - || collapse.includeCollapsedDocs.fl || Parameter indicating to return the collapsed documents in the response and what fields to return in comma separated manner. A value * indicates that all fields will be returned || + ||collapse.includeCollapsedDocs.fl ||Parameter indicating to return the collapsed documents in the response and what fields to return in comma separated manner. A value * indicates that all fields will be returned || - || collapse.debug || wheter to include collapse debug information || + ||collapse.debug ||wheter to include collapse debug information || - + ||collapse.aggregate ||Execute aggregate functions on the collapsed documents. The parameter expect the functions in the following format: function_name(field_name) [, function_name(field_name]. So for example: sum(stock), avg(weight). Currently there are four functions available: min(...), max(...), sum(...), avg(...). The functionality is available from the patch added at 2009-10-25 10:13 PM. || == Examples == - - Using the example data: Collapse all documents using 'cat' and 'normal' collapse type: http://localhost:8983/solr/select/?q=*:*&collapse.field=cat&collapse.threshold=1&collapse.type=normal + {{{ <lst name="collapse_counts"> <int name="hard">1</int> @@ -76, +75 @@ <int name="software">1</int> </lst> }}} + http://localhost:8983/solr/select/?q=*:*&collapse.field=cat&collapse.threshold=1&collapse.type=adjacent - - http://localhost:8983/solr/select/?q=*:*&collapse.field=cat&collapse.threshold=1&collapse.type=adjacent {{{ <lst name="collapse_counts"> <int name="hard">1</int>
