Ваш пример звучит как нечто, что будет лучше подходить для обработки с помощью пользовательского сходства или функции запроса в Solr, а не как пользовательский анализатор.
Например, если вы используете Solr 4.0, вы можете использовать функцию termfreq (поле, термин) для заказа по количеству раз, когда собака появляется.или вы можете использовать его в качестве фильтра следующим образом:
fq={!frange l=3 u=100000}termfreq(animals,"dog")
Это позволит отфильтровать все документы, в поле животных которых не содержится как минимум 3 вхождения слова «собака».Преимущество использования этого метода заключается в том, что вы не влияете на оценку документов, а только фильтруете их.
Возможность фильтрации по функциям существует начиная с Solr 1.4, так что даже если вы используете более раннюю версию Solr (> 1.4) Вы можете легко написать запрос функции "termfreq"