2016-10-11 3 views
0

700.000 개가 넘는 데이터 세트가있는 생산 솔라 서버를 운영하고 있습니다. 나는 다음과 같은 설정으로 쿼리 모드 dismax을 사용하고 있습니다 : 일부 필드는 내가 모든 언어로 검색 할이 특정 쿼리에 대해 여러 언어로 저장되기 때문에Solr 확장 된 qf로 매우 느림 쿼리

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 

QF 값이 매우 확장입니다. 그러나 쿼리가 매우 느립니다. 응답을 얻는 데 약 12 ​​초가 걸립니다. 서버 하드웨어가 충분합니다. qf 값의 범위와 응답 시간이 연관되어 있음을 알았습니다. qf를 줄이면 응답 시간이 훨씬 좋아집니다. 이것은 예상 된 행동입니까? qf가 너무 크지 않아야합니까? 이 경우의 성능을 조정할 수있는 방법이 있습니까?

+0

스페인어와 스웨덴어, 헝가리어로 동시에 검색해야합니까, 아니면 사용자가 어떤 언어를 사용하고 있는지 미리 생각해 보시겠습니까? –

+0

사실 모든 언어로 검색해야합니다. 그 주위에는 방법이 없습니다. – linsenfips

답변

1

의 좋은 사용법과 비슷합니다.

먼저 간단한 쿼리를 사용합니다. 예를 들어 qf에서 모든 제목 * 항목을 제거하더라도 여전히 좋은 결과를 얻을 수 있습니다. 그런 다음 다시 랜킹 단계에 대한 전체 qf를 사용하십시오.

+0

감사합니다. 좋은 접근처럼 들리 네요. 그러나 나는 그것이 왜 그렇게 느린지를 정말로 알고 싶다. CPU와 RAM은 충분하고 전혀 도전받지 않습니다. – linsenfips