2017-04-26 3 views
0

저는 Solr과 함께 초보자이며 페이로드별로 정렬 된 문서를 검색하려고합니다.Solr에서 페이로드로 점수 받기

{ "id": "1", "tags": ["Cat|0.8", "Dog|0.2"] }, 
{ "id": "2", "tags": ["Cat|0.4", "Dog|0.6"] } 

페이로드를 사용하여 각 태그를 강화하려고하지만 모든 정보가 약간 오래된 것으로 나타났습니다. This은 내가 찾은 가장 최근의 발행물입니다.

그러나 나는 this, too을 발견했으며 첫 번째 방법보다 새로운 것이 있는지 여부를 모르겠습니다. 두 번째 링크를 사용하면 schema.xml에 추가 할 수 있다고 생각합니다.

<fieldType name="tags" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float" delimiter="|"/> 
    </analyzer> 
</fieldType> 

페이로드가 인식됩니다. 하지만 그걸 확인하는 방법을 모르겠다. 나는 단지 "개"를 찾는 것이 결과가 페이로드별로 정렬되지 않는다는 것을 알게된다.

{ 
    "responseHeader":{ 
    "status":0, 
    "QTime":1, 
    "params":{ 
     "q":"Dog", 
     "indent":"on", 
     "wt":"json", 
     "_":"1493191003038"}}, 
    "response":{"numFound":2,"start":0,"docs":[ 
     { 
     "id":"1", 
     "tags":["Cat|0.8", 
      "Dog|0.2"], 
     "_version_":1565724328306147328}, 
     { 
     "id":"2", 
     "tags":["Cat|0.4", 
      "Dog|0.6"], 
     "_version_":1565724328307195904}] 
    }} 

그래서 무엇을 해야할지 모르겠다 ... 나는 최신 Solr 버전이 있어도 첫 번째 튜토리얼을 따라야 하나? 내 목표는 간단합니다. 태그의 페이로드로 응답을 정렬합니다.

답변

0

수있는 값을 가정하거나 것 태그는 가장 쉬운 경로 이럴, (아니 더 수천 이상) 제한됩니다 : SOLR에 의해 쉽게 사용할 수 몇 가지 형식으로

  1. 마사지 데이터를 들면, 예 :

    tag_ 유형 필드에 대한
    { "id": "1", "tags": ["Cat", "Dog"], "tag_Cat": "0.8", "tag_Dog":"0.2"} 
    
  2. , 당신은

  3. (아마 docValues으로도)를 tfloat에 dynamicField의 tag_의 모든 가능성을 다룰 것입니다 * 및 인덱스를 정의 할 수 있습니다
  4. 이제 필요할 때마다 관련 필드 (tag_Cat ...)로 쉽게 정렬 (또는 부스트) 할 수 있습니다.

+0

문제는 내가 그럴 수 없다는 것입니다. (. – analca3