2012-08-10 5 views
0

여기에 뭔가 빠져 있어야하지만 Elasticsearch를 사용하여 검색시 강조 표시를 시도 할 때 강조 표시가 전혀 표시되지 않지만 오류가 표시되지 않습니다. 나는 그것이 Tire 문제 다라고 생각하지 않는다. 그러나 나는 타이어가 중요한 경우에 대비하여 그것을 언급한다. 인덱싱 사용 타이어 (일부 필드는 간결함을 위해 밖으로 촬영) 매우 간단하다 :타이어가있는 탄성 검색, 강조 표시가 작동하지 않음

mapping :_source => { :excludes => ['attachment'] } do 
    indexes :id, :type => 'integer' 
    indexes :title, :store => true 
    indexes :attachment, :type => 'attachment', :_source => { :enabled => false } 
end 

컬 사용하여, 나는 잘 작동이 쿼리를 시도 할 수 있지만, 결과에 더 강조가 없습니다 :

curl -XPOST http://localhost:9200/myobject/_search\?pretty\=true -d '{    
    "query": {"query_string": {"query": "foobar"}}, 
    "highlight": {"fields": {"Title":{}}} 
}' 

은 강조 표시 작업을 수행해야한다고 생각하지는 않지만 매핑에 ": store => true"를 추가했습니다. 그래서 매핑 또는 쿼리 사양에서 뭔가를 놓치고있는 것 같아요,하지만 그것을 보지 않을거야. 어떤 제안이라도 대단히 감사 할 것입니다. 감사.

답변

2

필드 이름은 elasticsearch에서 대/소문자를 구분합니다. Titletitle은 두 개의 다른 필드입니다. 다음 검색어를 사용해보십시오.

curl -XPOST http://localhost:9200/myobject/_search\?pretty\=true -d '{    
    "query": {"query_string": {"query": "foobar"}}, 
    "highlight": {"fields": {"title":{}}} 
} 
+1

훌륭하게, 감사합니다. 인덱싱되는 원래 데이터 객체의 필드는 "Title"이라고 불렀지 만, 타이어 매핑이 ": title"인 것처럼 보이게하여 소문자로 매핑합니다. 이는 컬의 출력에서 ​​알아 차렸지만 어떻게 든 놓쳤습니다. 곱슬 곱슬하게 작동하지만, 타이어를 사용하여 항상 하이라이트 권리를 얻을하지 않습니다. 한 줄의 "s = MyObject.search (q, : highlight => : title)"는 작동하지 않지만 "highlight : title"가있는 블록 검색은 작동하지 않습니다. 어쨌든 빠른 도움을 주셔서 감사합니다. – Masonoise

관련 문제