2010-06-02 10 views
11

मैं एक दूसरे के specifeid सीमा के भीतर शब्दों की खोज करना अक्सर Solr की निकटता खोज का उपयोग करें, तोSolr - निकटता खोज का उपयोग करने के वाक्यांशों

"Government Spending" ~2 

मैं सोच रहा था की तरह वहाँ का उपयोग कर एक निकटता खोज करने के लिए एक रास्ता है एक वाक्यांश और एक शब्द या दो वाक्यांश। क्या यह संभव है? यदि ऐसा है तो वाक्यविन्यास क्या है?

अग्रिम धन्यवाद रुथ

उत्तर

14

यह "कुछ हद तक" साध्य प्रतीत होता है।

This is more about traffic between Solr servers themselves 

"more traffic between solr" ~2

"more about between solr" ~2

भले ही आप आदेश को बदल यह काम करता है:

"more about solr between" ~2" ~2

लेकिन बहुत दूर अलग है और यह कार्य करना बंद कर:

इस पाठ पर विचार करें

"more about servers themselves" ~2

मुझे लगता है कि अगर यह काम नहीं करता है, तो शायद यह एक कस्टम अनुरोध हैंडलर बनाने के लिए मुश्किल नहीं होगा। मुझे लगता है कि आपको एक नया वाक्यविन्यास परिभाषित करने की आवश्यकता हो सकती है, शायद कुछ ("phrase one" "phrase two") ~2 जैसे कुछ। मुझे लगता है कि यदि आप झुका रहे हैं, और आप एक ल्यूसीन क्वेरी बनाते हैं जहां केवल "वाक्यांश एक" का एक टोकन होता है और "वाक्यांश दो" का एक टोकन होता है जिसमें एक निश्चित निकटता होती है, मुझे लगता है कि यह काम करेगा। (बेशक आपको वास्तव में लुसीन जावा कॉल करने की आवश्यकता होगी, आप केवल क्वेरी को हाथ से नहीं सौंप सकते हैं (इसे http://lucene.apache.org/java/2_2_0/api/index.html पढ़ें))।

+0

कि मदद करेगा, धन्यवाद – Ruth

+0

एनपी। सौभाग्य! यह सुनना अच्छा होगा कि यह काम करता है या नहीं। – mlathe

10
बॉक्स मैं एक Solr निकटता खोज एक से अधिक शब्द, या वाक्यांशों का उपयोग करने के लिए एक रास्ता खोज की है में से

, नीचे

जैसे देखते हैं। 3 शब्दों के साथ:

"(word1) (WORD2) (word3)" ~ 10

जैसे। 2 वाक्यांशों के साथ: (ध्यान दें दोहरे उद्धरण भाग निकले जाने की आवश्यकता है)

"(\" phrase1 \ ") (\" phrase2 \ ")" ~ 10

6

Solr 4 के बाद से यह संभव SurroundQueryParser के साथ है।

उदा। क्वेरी करने के लिए जहां "वाक्यांश दो" "वाक्यांश एक" नहीं 3 से आगे शब्द के बाद इस प्रकार है:

3W(phrase W one, phrase W two) 

क्वेरी करने के लिए "वाक्यांश एक" के 5 शब्दों की निकटता में "वाक्यांश दो":

5N(phrase W one, phrase W two)