2017-12-26 18 views
1

Ich bin neu in Sphinx, und ich möchte in einem Modell suchen Sphinx mit, ich tat es und es hat gut funktioniert, aber mit einem FeldDenken Sphinx und auf Schienen mit mehreren Feldern in rubin Suche

ist dies die Bereich der Suche

<%= form_tag welcome_result_path, target: '_blank' , method: :get do%> 
    <%= text_field_tag :search, params[:search]%> 
    <%= submit_tag 'Search',name: nil %> 
<%end%> 

das ist meine Aktion

def result 
@firms = ThinkingSphinx.search(params[:search],classes:[Firm]) 
end 

und dies ist mein Index

ThinkingSphinx::Index.define :firm, with: :active_record do 

# fields 
indexes corporate_name, :sortable => true, :as => :rs 
indexes id, :as => :newid 
indexes external_id, :as => :oldid 
indexes gruik_code, :as => :gruik 
#indexes country_id, :as => :country ====> not sure we need this (?) 
# indexes usual_corporate_name, :as => :rsu 
indexes [contacts.first_name, contacts.last_name], :as => :nom_contact 
indexes contacts.role, :as => :role_contact 
indexes contacts.contact_methods.value, :as => :second 
indexes contacts.contact_methods.method_type, :as => :contact_method 
indexes categories(:id), :as => :categorie_id 
indexes categories.label, :as => :categorie 
indexes [addresses.city.region.name, addresses.free_region], :as => :wilaya 
indexes [addresses.street_1, addresses.street_2, addresses.street_3], :as => :adresse 
indexes [addresses.city.region.name, addresses.city.name, addresses.street_1, addresses.street_2, addresses.street_3], :as => :ou 
indexes [addresses.city.name, addresses.free_city], :as => :ville 
indexes tags.name, :as => :tag 
indexes categories.tags.name, :as => :categorie_tag 
indexes properties.value, :as => :prop 
indexes keywords, :as => :keywords 
indexes vip_keywords, :as => :vip_keywords 
indexes description, :as => :description 
end 

Ich möchte für den Standort

Antwort

0

ein weiteres Feld hinzufügen Wenn Sie möchten, auf einem bestimmten Feld in der Sphinx Index durchsuchen, können Sie die :conditions Option bei der Suche Aufruf verwenden:

ThinkingSphinx.search(
    params[:search], 
    classes: [Firm], 
    conditions: {:location => params[:location]} 
) 

auch ohne Bezug auf Ihre Frage, aber nur etwas von dem Code, den Sie freigegeben haben: wenn Sie suchen nur auf ein Modell, das Sie search Methode für das Modell verwenden können, statt durch die :classes Option:

Firm.search(
    params[:search], 
    conditions: {:location => params[:location]} 
) 
Verwandte Themen