Hi,

we've successfully implemented suggestion of search terms using facet prefixing with Solr 4.0. However, with lots of unique index terms we've encountered performance problems (long running queries) and even exceptions: "Too many values for UnInvertedField faceting on field textbody".

We must provide suggestions based on a prefix entered by the user. The solution should use the terms from an indexed text field. Furthermore the suggestions must be filtered according to some specified filter queries.

Do you have any performance tips for facet prefixing or know how to avoid the above exception even in the case of many unique terms?

What is causing the above exception: a) the total number of unique terms in the field or b) the number of unique terms in the field of a single document If b), is there a way to find such documents easily? Do you know how many unique terms can be handled without problems by facet prefixing?

I've read the blog post http://www.searchworkings.org/blog/-/blogs/different-ways-to-make-auto-suggestions-with-solr which describes NGrams as another possible approach to implement suggestions with filtering. I would expect that this approach provides better query performance (at the cost of increased index size). However I haven't found detailed information how to implement it. I know how to configure a field for ngrams and how to perform a query using that field. But the results just give me the document but not the matched terms. Or am I expected to use a stored field and inspect its value?

I also found this blog post where the Highlighter is used in combination with ngrams to provide suggestions: http://solr.pl/en/2013/02/25/autocomplete-on-multivalued-fields-using-highlighting/ Can this be used to get the suggested terms from a document? What about performance? Will such an approach perform better than facet prefixing for large text fields with lots of unique terms?

Any hints appreciated.

Thank you,
Andreas

Reply via email to