2012-04-18 2 views
1

필자는 더 새로운 문서를 반환하기 위해 업데이트하고 싶은이 쿼리와 비슷합니다. 문서에 따르면, 나는 recip(ms(NOW,mydatefield),3.16e-11,1,1)을 내 쿼리에 추가해야 할 것입니다.새로운 날짜로 항목을 올리는 적절한 방법은 무엇입니까?

그러나 mlt.qf 또는 bf 매개 변수 중 하나에 추가하려고 할 때. 결과는 정확히 같습니다. MLT

/SOLR/:

이 내 쿼리입니다?

Q = ID : cms.article.137861

& DEFTYPE = edismax

& 행 = 3

= & 들여

& mlt.fl = series_id

에서, 태그 제목, 텍스트

& mlt.qf = show_i D 텍스트^1.1 표제^1.1 태그^90

& 중량 = JSON

& FL = URL, 제목, 태그 django_id,

& BF = RECIP (MS (지금 PUB_DATE)를 content_type_id 3.16e-11,1,1)

답변

1

이이 SOLR 위키에서 가져온 것입니다 (그 아래로하지만 난)는 캐시 이 나는 ​​이것이 당신이 찾고있는 것을 생각합니다.

어떻게 새로운 문서의 점수를 높일 수

날짜에 의해 명시 적 종류 (관련 점수는 무시됩니다) 수행 사용하여 점수에 영향을 미칠 수있는 FunctionQuery를 사용 새로운 문서에 대한 큰 인덱스 시간 향상 날짜 필드를 기반으로합니다. Solr 1.3의 경우 recip (rord (myfield), 1,1000,1000) 양식을 사용하십시오. Solr 1.4에서는 recip (ms (NOW, mydatefield), 3.16e-11,1,1) http://lucene.apache.org/solr/api/org/apache/solr/search/function/ReciprocalFloatFunction.html http://lucene.apache.org/solr/api/org/apache/solr/search/BoostQParserPlugin.html "ipod"에 대한 검색어의 전체 예는 최신 제품이 더 높은 점수로 향상되었습니다.

http://localhost:8983/solr/select?q= {:

http://localhost:8983/solr/select?q= {! 부스트 B = RECIP (MS (NOW, manufacturedate_dt), 3.16e-11,1,1)} 아이팟 하나는 여러 인수에 쿼리를 분해하여 구현을 단순화 할 수 있습니다 ! boost b = $ dateboost v = $ qq} & dateboost = recip (ms (NOW, producedate_dt), 3.16e-11,1,1) & qq = ipod 이제 "dateboost"인수뿐만 아니라 기본 "q"인수가 검색 핸들러에서 기본값으로 지정 될 수 있습니다 solrconfig.xml에서 클라이언트는 사용자 쿼리 인 "qq"만 전달하면됩니다.

dismax 쿼리와 같은 다른 쿼리 유형을 향상 시키려면 boost 쿼리의 값이 전체 하위 쿼리이므로 {! querytype} 구문을 사용할 수 있습니다.또는 기본 유형을 dismax로 설정하기 위해 부스트 로컬 매개 변수에서 defType 매개 변수를 사용할 수 있습니다. 다른 dismax 파라미터는 최상위 레벨 파라미터로서 설정 될 수있다.

http://localhost:8983/solr/select?q= {! = $ dateboost V = $ 전분기 DEFTYPE = dismax B 부스트} & dateboost = RECIP (MS (NOW, manufacturedate_dt), 3.16e-11,1,1) & QF = 텍스트 & PF = 텍스트 & qq = ipod 과도한 메모리 소비를 막기 위해 정밀도를 줄이는 것을 고려하십시오. 대신 recip (ms (NOW/HOUR, mydatefield), 3.16e-11,1,1)을 사용하십시오. 자세한 내용은이 스레드를 참조하십시오.

+0

해당 스레드 링크가 없습니다. – TheOne

+0

나는 이미 그 버전을 사용해 봤다. 그들은 나에게 똑같은 결과를 준다. – TheOne

0

분명히 귀하의 날짜 필드는 TrieDate가 아닙니다.

관련 문제