2012-01-14 21 views
10

मैं सोलर में कुछ बुनियादी समानार्थी स्थापित करने की कोशिश कर रहा हूं। एक मैं पर काम कर रहा हूँ है:सोलर समानार्थी शब्द कैसे बनाएं

हमें, संयुक्त राज्य अमेरिका, संयुक्त राज्य अमेरिका

मेरे समझ है कि कहा कि पर्याय फाइल करने के लिए उपयोगकर्ताओं को अमेरिका के लिए खोज, और वापस यूएसए या संयुक्त वाले दस्तावेज़ों प्राप्त करने की अनुमति देगा राज्यों। यदि उपयोगकर्ता किसी उपयोगकर्ता या संयुक्त राज्य में डालता है तो इसके लिए।

दुर्भाग्य से, जब मैं एक खोज करता हूं, तो मुझे उन सभी वस्तुओं के परिणाम मिलते हैं जिनमें सभी तीन शब्द होते हैं - यह एक OR के बजाय समानार्थी शब्दों का एक और कर रहा है।

(+DisjunctionMaxQuery(((westCite:us westCite:usa westCite:unit) | (text:us text:usa text:unit) | (docketNumber:us docketNumber:usa docketNumber:unit) | ((status:us status:usa status:unit)^1.25) | (court:us court:usa court:unit) | (lexisCite:us lexisCite:usa lexisCite:unit) | ((caseNumber:us caseNumber:usa caseNumber:unit)^1.25) | ((caseName:us caseName:usa caseName:unit)^1.5))))/no_coord

मैं कुछ गलत कर रहा हूँ इस कारण करने के लिए:

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

उत्तर

20

क्वेरीिंग के दौरान नहीं, केवल अनुक्रमण के दौरान SynonymFilterFactory का उपयोग करने का प्रयास करें।

प्रलेखन इस रूप में अच्छी तरह पता चलता है: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory

+0

निश्चित रूप से काम किया। इस संकल्प को प्राप्त करने के लिए खुशी हुई * पहले * मैं लाइव साइट में 600,000 दस्तावेज इंडेक्स ... – mlissner

2

पर्याय खोज की बेहतर समझ के लिए, हम कार्यान्वयन के कदम प्रक्रिया द्वारा कदम होगा (मैं Solr 6.5 उपयोग कर रहा हूँ * संस्करण।):

चरण 1:

डाउनलोड country-synonyms.txt पाठ फ़ाइल और नीचे पथ में रखें:

पथ: \ Solr-6.5.1 \ सर्वर \ Solr \ yourCore \ conf

yourCore: कोर का नाम तदनुसार बदला जाना चाहिए

चरण 2:

ऊपर वर्णित उसी पथ में प्रबंधित-स्कीमा फ़ाइल फ़ील्ड प्रकार जोड़ें:

चरण 3: अपने क्षेत्र (राष्ट्रीयता) प्रकार देश एक ही फाइल (प्रबंधित-स्कीमा) में साथ जोड़ें।

<field name="Nationality" type="country" indexed="true" stored="true"/> 

चरण 4: पुनः प्रारंभ Solr।

solr restart -p <your solr port> 

चरण 5:।

अब राष्ट्रीयता युक्त क्षेत्र के साथ अपने डेटा आयात ***

चरण 6:

अब नीचे मामलों और परीक्षण के साथ क्वेरी :

क्वेरी:

  1. राष्ट्रीयता: अमेरिका
  2. राष्ट्रीयता: संयुक्त राज्य अमेरिका
  3. राष्ट्रीयता: संयुक्त राज्य अमेरिका
  4. राष्ट्रीयता: संयुक्त राज्य अमेरिका

की उपरोक्त सभी प्रश्नों आप एक ही परिणाम दे देंगे।

नोट: *** सोलर पुनरारंभ सहित चरणों को निष्पादित करने के बाद ही डेटा आयात करें। यह मौजूदा डेटा पर काम नहीं कर सकता है (अधिक जानकारी के लिए देखें: AnalyzersTokenizersTokenFilters)