मैं सूर्यकलंकसनस्पॉट: विभिन्न मानों के साथ एकाधिक फ़ील्ड पर पूर्ण टेक्स्ट क्वेरी कैसे करें?
q=exact_term_text:foo OR term_textv:foo* OR alternate_text:bar*
साथ निम्नलिखित कच्चे Solr क्वेरी पुन: पेश करना चाहते हैं, लेकिन मैं अगर समझ नहीं पा रहा हूँ और यह कैसे संभव है, मानक सूर्यकलंक इंटरफेस के माध्यम से, के बाद से ऐसा लगता है कि:
fulltext
विधि से अधिक लेख/search_fields तर्क- मैं क्या तर्क
fulltext
करने के लिए पहले एक के रूप में पारित करने के लिए पता नहीं स्वीकार करने के लिए, के रूप में अगर मैं या तो"foo"
या"bar"
फिर से पारित नहीं लगता है sults - से मेल नहीं खाएगा यदि मैं एक खाली तर्क पास करता हूं तो मुझे
q=*:*
- स्कोप फ़िल्टर (उदा।
with(:term).starting_with('foo*')
फ़िल्टर नाम के रूप में लागू होते हैं (जैसा कि नाम का तात्पर्य है), और इस प्रकार स्कोरिंग में कोई हिस्सा नहीं लेते हैं।
स्ट्रिंग को हाथ से लिखना संभव है (या संभवतः adjust_solr_params
का उपयोग करें) लेकिन यह हैक लगता है। क्या कोई बेहतर समाधान है?
(धार) का उपयोग कर ngrams नहीं बिल्कुल वही बात और अनुक्रमण के बिना है यह नहीं जाने देंगे कारण मुझे प्रश्नों के बीच प्रोग्राम के रूप में अंतर जहां एक आंशिक मैच ठीक है नहीं एक ही क्षेत्र दो बार। ऐसा प्रतीत होता है कि डिसनक्स क्वेरी हैंडलर के सस्पनपॉट का उपयोग मुझे हैकिश समाधानों के बिना ल्यूसीन प्रश्न नहीं देगा, इसलिए मैं जवाब को स्वीकार कर रहा हूं, धन्यवाद। – riffraff
सनस्पॉट प्रलेखन में https://github.com/sunspot/sunspot/wiki/Fulltext- खोज करें यह स्पष्ट रूप से कहता है: "ध्यान दें कि 'कीवर्ड' विधि को एक खोज में कई बार नहीं कहा जाना चाहिए - लगातार कॉल ओवरराइट हो जाएगी पहले निर्दिष्ट कीवर्ड। " * ('कीवर्ड' को 'fulltext' के लिए उपनाम दिया गया है, वे एक ही विधि हैं।) * तो लेखकों के मुताबिक, आपका समाधान काम नहीं करेगा ... फिर भी यह पूरी तरह से काम करता प्रतीत होता है। हमम, कोई झूठ बोल रहा है। – Jazz
हो सकता है कि पूर्ण टेक्स्ट को दो बार एक ही क्षेत्र में नहीं बुलाया जाना चाहिए। – juanpastas