레일 3과 타이어 젬이있는 Elasticsearch 사용.ElasticSearch 및 타이어/레일 : 단일면에 대해 두 개의 필드 사용
몇 가지 필드에서 작업 할 패싯이 있지만 이제는 특별한 요구 사항이 있으며 가능하지 않은지 확실하지 않습니다. 내 모델 프로젝트에 동일한 값을 저장하는 두 개의 필드가 있습니다. 국가 1과 국가 2
사용자는 프로젝트에 대해 최대 두 개의 국가를 저장할 수 있습니다. 두 메뉴의 드롭 다운 메뉴는 동일합니다. 어느 필드도 필요하지 않습니다.
내가하고 싶은 것은 (이 일에 있었던 2의 여부, 즉 그것을 찾을 것)
가 여기 내 모델의 '병합'COUNTRY1 및 COUNTRY2의 값 지능적으로 그면을 클릭 핸들 것이다는 것을 하나의면이다 지금까지 : (국가 1/2는 여러 단어가 될 수 있습니다.)
class Project < ActiveRecord::Base
mapping do
indexes :id
indexes :title, :boost => 100
indexes :subtitle
indexes :country1, :type => 'string', :index => 'not_analyzed'
indexes :country2, :type => 'string', :index => 'not_analyzed'
end
def self.search(params)
tire.search(load: true, page: params[:page], per_page: 10) do
query do
boolean do
must { string params[:query], default_operator: "AND" } if params[:query].present?
must { term :country1, params[:country] } if params[:country].present?
end
end
sort { by :display_type, "desc" }
facet "country" do
terms :country1
end
end
end
유용한 정보!
Thanks 카렐, 이것이 진화하는 속도가 얼마나 빠를까요? – bobomoreno
패싯에 대해 하나 이상의 단어를 반환하는 방법이 있습니까? 예를 들어 사용자 모델에 패싯을 사용하고 패싯에서 user_id와 이름을 반환하면 데이터베이스를 통해 사용자 이름을 조회 할 필요가 없습니다. – GreenEggs