0

I'm operating a productive Solr server with more than 700.000 datasets in it. I'm using the query mode dismax with the following settings:

mm = 2<-1 5<80%
tie = 0.1
qf = title^4 text title_bg^4 text_bg title_hr^4 text_hr title_cs^4 text_cs title_da^4 text_da title_nl^4 text_nl title_et^4 text_et title_fi^4 text_fi title_fr^4 text_fr title_de^4 text_de title_el^4 text_el title_hu^4 text_hu title_ga^4 text_ga title_it^4 text_it title_lv^4 text_lv title_lt^4 text_lt title_mt^4 text_mt title_pl^4 text_pl title_pt^4 text_pt title_ro^4 text_ro title_sk^4 text_sk title_sl^4 text_sl title_es^4 text_es title_sv^4 text_sv name^4 tags^2 groups^2

The qf value is very extended because some fields are stored in multiple languages for this particular query I want to search in all languages. But the query is very slow. It takes about 12 seconds to get a response. The hardware of the server is more than sufficient. I noticed that the extent of the qf value and the response time are connected. When I strip down qf is the response time gets much better. Is this the expected behavior? Should qf not be too big? Is there a way to tweak the performance for this case?

fabian.kirstein
  • 708
  • 8
  • 26
  • Do you really really need to simultaneously search in Spanish AND Swedish AND Hungarian, or do you have some idea ahead of time what language the user is in? – Hans Z Oct 11 '16 at 20:34
  • Indeed I need to search in all languages. There is no way around it. – fabian.kirstein Oct 17 '16 at 13:17

1 Answers1

1

this sounds like a good use case for query reranking.

You use a simpler query first (for example removing all title* stuff from qf might still give good results) and then use the full complex qf you have now for the reranking step.

Persimmonium
  • 15,593
  • 11
  • 47
  • 78
  • Thanks. Sound like a good approach. But I really want to understand why is it that slow? The CPU and RAM are sufficient and not challenged at all. – fabian.kirstein Oct 17 '16 at 13:19