У меня проблема с использованием фасета.
Мне нужно автозаполнение, и для этого я использую фасет:
http://localhost:8080/solr/select?q=*:*&wt=json&indent=on&facet=on&rows=0&fq=filter:("30") AND filter2:("1")&facet.field=spell&facet.prefix=g&facet.limit=10&facet.mincount=1
Я использую фасет, потому что мне нужно добавить фильтры для запроса, например filter :( "30") AND filter2 :( "1")
Когда у меня есть несколько документов, все работают нормально и быстро, но если я добавляю много документов в индекс, этот запрос работает слишком медленно или просто SOLR не отвечает на этот запрос.
Моя схема.xml:
......
<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="4" outputUnigrams="true"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
.....
<fields>
<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="article" type="textSpellShingle" indexed="true" stored="false" multiValued="true"/>
<field name="title" type="text_general" indexed="true" stored="true"/>
<field name="filter" type="int" indexed="true" stored="true"/>
<field name="filter2" type="int" indexed="true" stored="true"/>
</fields>
<uniqueKey>id</uniqueKey>
<defaultSearchField>article</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
<copyField source="article" dest="spell"/>
<copyField source="title" dest="spell"/>
....