2009-04-15 8 views
5

मैं थिंकिंग स्फिंक्स प्लगइन के साथ स्फिंक्स का उपयोग कर रहा हूं।स्पिंक्स खराब खोज परिणामों को लौट रहा है

define_index do 
    indexes :name 
    indexes city 
    indexes zip 
end 

मैं इस कोड के साथ मेरी नियंत्रक में परिणाम प्राप्त: मैं एक मॉडल निम्नलिखित कोड (सूचकांक कमान और रेक thinking_sphinx): के साथ स्थान कहा जाता है अनुक्रमित है

@venues = Venue.search params[:search] 

और मैं उन्हें के रूप में प्रस्तुत करना json। मेरी समस्या यह है कि जब मैंने यह यूआरएल मारा:

http://localhost:3000/venue/list?search=Baltimo 

मुझे कुछ भी नहीं मिला। लेकिन जब मैंने यह यूआरएल मारा:

http://localhost:3000/venue/list?search=Baltimor 

मुझे बाल्टीमोर शहर में स्थित सभी स्थान मिलते हैं। किसी कारण से एक चरित्र एक फर्क पड़ता है। सैद्धांतिक रूप से, मुझे बाल्टीमोर में सभी स्थान मिलना चाहिए यदि मैं सिर्फ एक चरित्र के साथ खोज करता हूं - 'बी'

क्या किसी को पता है कि यहां क्या हो रहा है?

आप

उत्तर

6

, आप बी बाल्टीमोर (और फिर भी, मैं तुम्हें बी के लिए खोज करने की जरूरत है मैच के लिए नहीं मिलेगा धन्यवाद जब तक आप enable_star सेट 1 करने के लिए और min_prefix_len या min_infix_len सेट 1 या अधिक करने के लिए है * मैच पाने के लिए)।

यहाँ क्या हो रहा है कि डिफ़ॉल्ट रूप से, यह सोच कर स्फिंक्स स्फिंक्स बताता है, एक अंग्रेजी स्टेमर है, जो (पात्रों द्वारा, जिसका अर्थ है द्वारा नहीं) समान शब्द के लिए अनुमति देता है का उपयोग करने के विचार से मेल खाता होना करने के लिए तो यह डालता Baltimor और है बाल्टीमोर एक ही टोकरी में।

development: 
    enable_star: 1 
    min_infix_len: 1 
test: 
    enable_star: 1 
    min_infix_len: 1 
production 
    enable_star: 1 
    min_infix_len: 1 

फिर स्फिंक्स, फिर से सूचकांक को रोकने, और पुनः आरंभ स्फिंक्स:

से अधिक भुगतान नहीं किसी भी शब्द के किसी भी हिस्से को प्राप्त करना चाहते हैं, तो आप config में निम्नलिखित/sphinx.yml की तरह कुछ डाल करने की आवश्यकता है । एक बार ऐसा करने के बाद, बी * के लिए खोजें बाल्टीमोर वापस आना चाहिए।

उम्मीद है कि इससे मदद मिलती है।

+0

मीठा, बस पाया कि स्फिंक्स दस्तावेज पर ... लेकिन यह नहीं मिला कि यह कहां है कि इसे येल में रखा जाए। धन्यवाद! – Tony

+0

क्या कोई ऐसा तरीका है जहां उन्हें अंत में * टाइप करने की आवश्यकता नहीं है? खोज लकड़ी की तरह लकड़ी और लकड़ी के काम को लकड़ी के बिना * – Mike

+0

महान जवाब के बिना खींच जाएगा। यहां जो भी ठोकर खा रहा है, उसके लिए विवरण http://freelancing-god.github.com/ts/en/advanced_config.html पर पाए जाते हैं। ध्यान देने योग्य एक बात यह है कि min_infix_len से 1 को सेट करने से प्रदर्शन में कमी आएगी। – dmonopoly

संबंधित मुद्दे