2012-03-28 2 views
1

저는 제가하고 싶은 일이 불가능하다고 생각하지만, 이것을 시도 할 것이라고 생각했습니다.Sol는 dismax를 사용하는 동안 계산 된 거리를 얻습니다.

저는 Solr 3.5를 사용하고 있습니다.

나는 현재 검색의 두 가지 유형이 있습니다

  1. 점수 필드에 두 점 사이의 calulated 거리를 반환하는 기본 공간 쿼리. 내 SOLR 로그에서

예제 쿼리 :

?fl=*,score&sort=score+asc&start=0&q={!func}geodist()&sfield=coordinates&pt=59.2363514,18.092783&version=2 
  1. 분야의 수에 자유 텍스트 쿼리를 허용하는 dismax 쿼리. SOLR 로그에서

예제 쿼리 :

mm=1&d=100.0&sfield=coordinates&qf=field1^5.0+fields2^3.0&defType=edismax&version=2&fl=*,score&start=1&q=monkeyhopper&pt=59.2363514,18.0927830000&fq={!geofilt}} 

나는 dismax 쿼리 내 첫 번째 쿼리를 대체하고 싶지만 난 정말 응답에서 계산 된 거리를 얻을 필요가있다. 예, 프로그래밍 방식으로 거리를 계산할 수 있지만 Solr이 이미 저에게 해 주었기 때문에이를 수행하지 않아도됩니다.

필자는 "관련성", 거리 또는 다른 필드를 사용하여 내 dismax 쿼리를 정렬 할 수 있기를 원하기 때문에 내 부스트로 얻은 점수가 정렬에 흥미가있을 수 있지만 반환 할 필요는 없습니다.

답변

1

이제 Solr 4+에서 가짜 필드를 사용하면이 작업을 수행 할 수 있습니다.

http://localhost:8983/solr/collection1/browse?q=*:*&rows=1000&wt=xml&pt=37.763649,-122.24313&sfield=store&fl=dist:geodist() 

예를 들어,이 요청을 통해 각 항목의 명시된 지점까지의 거리를 포함하는 "dist"필드를 반환 할 수 있습니다.

+1

감사합니다. Solr 4가 안정적이라는 것을 감안하면 해결책으로 이것을 받아 들일 것입니다 :) – polythene

2

제대로 이해했다면 Solr 응답에서 함수의 결과를 얻고 싶을 것입니다. SOLR-2444 문제는 내가 찾고있는 것입니다 : fl 매개 변수 의사 필드, 함수 등을 포함 할 수 있습니다. 유일한 문제는 트렁크에서만 커밋되어 현재 Solr에서 사용할 수 없다는 것입니다 릴리스, 둘 다 오는 3.6 릴리스에 포함되지 않습니다. 당신은 4 버전을 기다려야 만하는데, 많은 시간이 걸릴 것이라고 생각하지 않습니다. 이미 마지막으로 성공한 젠킨스 빌드 snapshot으로 게임을 시작할 수 있습니다.

+0

저는 Solr 4를보고 있었고 아마도 제 문제를 해결할 것입니다. 그러나 이것이 3.5로 해결 될 수 있다면 아직 Solr 4의 출시일 인 것 같지 않으므로 더 좋을 것입니다 (당신이 맞을 수도 있지만 지금은 그리 길지 않을 수도 있습니다) – polythene

+0

나는 생각하지 않습니다 Solr 3.x로 원하는 것을 할 수있는 방법이 있습니다. 어쩌면 3x 지점에 SOLR-2444 패치를 적용하려고 할 수는 있지만 제대로 작동하는지 확신 할 수 없습니다. – javanna

+0

4.0이 프로덕션 환경에서 안정적 일 때까지 프로그래밍 방식으로 작업하고 있습니다. – polythene

관련 문제