EdgeNGram과 비슷한 패싯 필드의 부분 문자열을 기반으로 패싯 카운트를 얻는 방법이 있습니까?Solr - 패싯을 사용하여 가변 정밀 geohashes를 기반으로 문서 합계
솔라를 사용하여 고정밀 도로 거합 하 (geohash) 문자열을 저장하고 특정 거머리 정밀도로 문서 수를 계산하려고합니다. 패싯은 특정 geohash '셀'의 문서를 계산하는 데 사용됩니다.
지금까지 내가 할 수있는 유일한 방법은 geohashes 계층을 사용하는 것입니다.
예 : (인덱스 데이터에서) 현재 패싯 결과 집합 :
<lst name="facet_counts">
<lst name="facet_fields">
<int name="svztdm7w">11</int>
<int name="sv87rzt8">3</int>
<int name="sv83t6bf">2</int>
<int name="syqxp43m">4</int>
<int name="syr9f0v2">4</int>
<int name="syp8p8hb">3</int>
<int name="tuuttmtt">3</int>
<int name="twj1ynm3">3</int>
<int name="w30n6u71">3</int>
</lst>
</lst>
내가 정밀도 1 설정으로 원하는 것은 :
<int name="s">27</int>
<int name="t">6</int>
<int name="w">3</int>
내가 정밀도 2 설정에서 원하는 것은 :
<int name="sv">16</int>
<int name="sy">11</int>
<int name="tu">3</int>
<int name="tw">3</int>
<int name="w3">3</int>
건배.
예 히트 맵 - 하나 있습니다! 그건 잘된거야. 그것은 내 색인 생성이 약간 거추장 스럽다는 것을 의미합니다 (접두어 각각을 수행하기 위해 별도의 정규 표현식을 사용했습니다 - 이것이 가장 좋은 방법인지 확실하지 않음). 그 메모에, solo가 geohash를 계산하고 그것을 faceting을 위해 사용 가능하게 만들거나 그것이 제공 되어야만하는 간단한 방법이 있습니까? – Sensai
Solr에는 GeoHashField가 내장 된 geohashing이 있지만 길이 프리픽스가 없습니다. 어떻게 또는 왜 정규 표현식을 사용했는지는 알 수 없습니다. 단순히 문자열의 길이를 계산하고 16 진수로 시작하십시오. 이 모든 논리를 UpdateRequestProcessor에 넣고 필드를 String으로 색인화합니다. –