2010-05-16 7 views
6

Zend Lucene का उपयोग करते हुए खोज नहीं कर सकतेZend Lucene मैं वर्णन फ़ील्ड में नंबर खोज नहीं कर सकते संख्या

इस तरह यह जोड़ा गया:

$doc->addField(Zend_Search_Lucene_Field::Text('description', $current_item['item_short_description'], 'utf-8')); 

इस के लिए Googling पता चला है कि निम्नलिखित कोड लागू समस्या इसे हल करना चाहिए, लेकिन नहीं ..:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive()); 

कोई भी सामान?

उत्तर

8

आपको डिफ़ॉल्ट विश्लेषक दो बार सेट करना होगा: अनुक्रमण प्रक्रिया के साथ-साथ खोज प्रक्रिया पर भी।

ऊपर से कोड लाइन का उपयोग करें:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive()); 
0

मैं के बारे में 'Zend' यकीन नहीं है, लेकिन Lucene में संख्या के साथ सौदे के लिए, आप तकनीक निम्नलिखित उपयोग की जरूरत है:

  • पूर्णांक रखने के लिए निम्नलिखित उपयोग दस्तावेज़ के लिए:

    document.Add (नया फ़ील्ड (FIELD_SPEC, NumberTools.LongToString (YOUR_INT), Field.Store.YES, Field.Index.UN_TOKENIZED));

  • पता लगाने के लिए मूल्य उपयोग अवधि: अवधि (FIELD_SPEC, NumberTools.LongToString (YOUR_INT))

+0

मैं विवरण के लिए यह उपयोग कैसे करूँ? मैं चाहता हूं कि विवरण के अंदर संख्या खोजने योग्य हैं। मेरे पास सिर्फ "सीप्रेट पूर्णांक" नहीं है। –

+0

@ पावेल डुबिनिन - मेरा नोट देखें: "मूल्य उपयोग का पता लगाने के लिए शब्द: ..." तो जब आपको खोज की आवश्यकता होती है तो आप इसे BooleanQuery के हिस्से के रूप में बनाते हैं जहां टर्म नंबर का उपयोग करके टर्म बनाया जाता है। यदि आप मानक क्यूरी पार्सर का उपयोग करते हैं तो थोड़ा सा जटिल - इस मामले में सभी संख्याओं को मूल्यों में प्रतिस्थापित संख्याओं द्वारा प्रतिस्थापित करके प्रीप्रोसेस बनाएं – Dewfy

1

आप का उपयोग किया है कि पहले या Zend_Search_Lucene बुला के बाद आदेश :: खुला()?

इसे पहले से कॉल करना निश्चित रूप से काम करता है।

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