Hi *, I implemented a custom filter and am using it through a QParserPlugin. I'm wondering however, whether my implementation is that clever yet...
Here's my QParser; I'm wondering whether I should apply the filter to all documents in the index (I already guess it's a bad idea) or whether I should use the query as provided by the already available query parser, see the parse() method. public AccessFilterQParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) { super(qstr, localParams, params, req); QParserPlugin parserPlugin = req.getCore().getQueryPlugin(QParserPlugin.DEFAULT_QTYPE); QParser parser = parserPlugin.createParser(qstr, localParams, params, req); try { preConstructedQuery = parser.getQuery(); } catch (ParseException e) { throw new RuntimeException(e); } String fieldName = localParams.get(AccessParams.ACCESS_FIELD, "access"); this.accessFilter = new AccessFilter(fieldName, qstr); } @Override public Query parse() throws ParseException { Query allDocs = new MatchAllDocsQuery(); // return new FilteredQuery(allDocs, accessFilter); return new FilteredQuery(preConstructedQuery, accessFilter); } I'd be happy about any advice... best Ingo -- Ingo Renner TYPO3 Core Developer, Release Manager TYPO3 4.2, Admin Google Summer of Code TYPO3 Enterprise Content Management System http://typo3.org Apache Solr for TYPO3 - Enterprise Search meets Enterprise Content Management http://www.typo3-solr.com