2008-11-07 14 views
23

मैं बूलियन नोट धारणा का उपयोग कर सोलर से सभी दस्तावेजों को कैसे हटा/हटा सकता हूं?बूलियन सोलर क्वेरी में नहीं

यानी मैं सोलर से सभी दस्तावेजों को कैसे हटा सकता हूं, जो आईडी ए 5 के साथ शुरू नहीं होती है?

उत्तर

56

इंगित करने के लिए '-' का उपयोग करें।

उदाहरण के लिए, A59 के साथ शुरू नहीं आईडी के साथ दस्तावेजों को क्वेरी करने के लिए, क्वेरी होगा: -id:A59*, वह है: /solr/select/?q=-id:A59*

क्वेरी से हटाने के लिए, अद्यतन हैंडलर के लिए एक हटाने संदेश में क्वेरी पोस्ट, के रूप में निर्दिष्ट here

संपादित करें: नहीं (सभी अपरकेस) भी ऑपरेटर

1

मैं नहीं मानता कि एक नकारात्मक क्वेरी काम करता है द्वारा हटाने के रूप में इस्तेमाल किया जा सकता है। यह जिरा टिकट देखें: https://issues.apache.org/jira/browse/SOLR-381

वे कहते हैं कि इसमें उपसर्ग करने के लिए कोई कामकाज है: लेकिन मेरे पास इसके साथ कोई भाग्य नहीं है।

यह काम नहीं करता (एक ही नहीं उपयोग करने के साथ) /opt/solr/example/exampledocs/post.jar जावा -Ddata = आर्ग जार "-userid: *" जावा जार/opt/Solr/उदाहरण /exampledocs/post.jar * .xml

एक में जोड़ना: जावा -Ddata = आर्ग जार /opt/solr/example/exampledocs/post.jar "(नहीं का उपयोग कर के साथ एक ही) एक सिंटैक्स त्रुटि देता है: - उपयोगकर्ता id: * " जावा जार /opt/solr/example/exampledocs/post.jar * .xml

SimplePostTool: संस्करण 1.4 SimplePostTool: आर्ग पोस्ट करने के लिए http://localhost:8983/solr/update .. SimplePostTool: घातक: Solr एक त्रुटि # 400 पार्स करने Lucene क्वेरी SimplePostTool त्रुटि दिखाई: 1.4

7

विस्मयादिबोधक काम करता है संस्करण के लिए नहीं के रूप में अच्छी है, तो:

/solr/select/?q=!id:A59* 

उपरोक्त मामले में काम करना चाहिए।

+1

यह उत्तर काम नहीं करता था, जैसा ऊपर दिया गया था, मुझे यकीन नहीं है, लेकिन मुझे लगता है कि वास्तव में थोड़ा अलग अर्थशास्त्र हो सकता है – Sammaye

0

हटाने से पहले कृपया सुनिश्चित करें कि जिन आईडी का आप उल्लेख कर रहे हैं वह स्ट्रिंग है और किसी भी तरह से संयुक्त रूप से दो शर्तों द्वारा गठित नहीं किया जाएगा। जिस तरह से मैं इसे करता हूं, वह स्क्रिप्ट से डेटा को एक स्क्रिप्ट से पढ़ता है और एकवचन हटाने या बैच में करता है, क्योंकि यह प्रत्येक आईडी पर बेहतर नियंत्रण और सत्यापन प्रदान करता है जो गलत हटाने का जोखिम कम करता है इसलिए 1 डेटा पढ़ें ? /Solr/select/q = आईडी का उपयोग कर एक स्क्रिप्ट से Solr से: A59 *

2 को सत्यापित करने और आईडी

मान्य

3 उन्हें एक बार

पर एक के बाद या 10 आईडी के एक समूह को हटाकर उसकी जगह

सम्मान

आर Ajat

0

Mauricio के रूप में कहा गया है:

का प्रयोग करें - इंगित करने के लिए क्या आप अपने प्रश्न में को बाहर चाहते हैं प्रतीक। निम्नलिखित दो प्रश्न ए 5 के साथ शुरू होने वाले सभी दस्तावेजों को छोड़कर सभी दस्तावेजों को हटा देंगे।

GET http://<url>/solr/<core>/update?stream.body=<delete><query>-id:A59*</query></delete> 
GET http://<url>/solr/<core>/update?stream.body=<commit/> 

पहली पंक्ति डिलीट ऑपरेशन करता है। दूसरी पंक्ति प्रतिबद्धता करता है।

0

फाइलों के सामने के प्रतीक का उपयोग करने का अर्थ यह है कि उस विशेष मूल्य को बाहर कर दें। यह परिणाम समान नहीं होगा

निम्नलिखित नमूना url क्वेरी स्ट्रिंग है। मैं रखा है "& fq = -HQ_City_Code: एमईएल",

यह सब परिणाम जो HQ_City_Code रहा है मूल्य एमईएल को छोड़ देगा।

http://localhost:8983/solr/HQ_SOLR_Hotels/select?q=*:*&fq=HQ_National_Code:TH&fq=HQ_TYPE:hotel_EN&fq=HQ_Country_Code:AU&**fq=-HQ_City_Code:MEL**&wt=json&indent=true 
संबंधित मुद्दे