समानार्थी शब्द (एक जैसे मतलब वाले) शब्द तय करें

किसी संगठन के लिए खास शब्दावली या कई तरीकों का इस्तेमाल करना सामान्य बात है किसी सिद्धांत या चीज़ के बारे में बताया जाता है. इन शब्दों को तय करने के लिए समानार्थी शब्द परिभाषित करने चाहिए मिलते-जुलते शब्दों की मदद से खोज करते समय उपयोगकर्ताओं को आइटम खोजने में मदद मिलती है.

समानार्थी शब्दों को उन आइटम को इंडेक्स करके परिभाषित किया जाता है जिनमें _dictionaryEntry जाने-पहचाने शब्द शामिल होते हैं स्कीमा चुनें.

_dictionaryEntry टाइप के आइटम में ये प्रॉपर्टी हो सकती हैं:

प्रॉपर्टी टाइप ब्यौरा ज़रूरी है?
_term string तय किया जाने वाला शब्द. सुझाई गई वैल्यू, ऐसे शब्द या वाक्यांश होते हैं जिन्हें हाइफ़न इस्तेमाल नहीं किया जा सकता. इनमें विराम चिह्न का इस्तेमाल नहीं होता. ज़रूरी है
_synonym string (repeated) _term में बताई गई स्ट्रिंग से मिलती-जुलती क्वेरी में शामिल किए जाने वाले वैकल्पिक शब्द. ज़रूरी है
_onlyApplicableForAttachedSearchApplications boolean इससे आपको डेटा सोर्स और खोज ऐप्लिकेशन के हिसाब से, समानार्थी शब्दों को ग्रुप करने की सुविधा मिलती है. ज़्यादा जानकारी के लिए, डेटा सोर्स के हिसाब से समानार्थी शब्द तय करना लेख पढ़ें. वैकल्पिक

जब कोई उपयोगकर्ता किसी क्वेरी में _term प्रॉपर्टी की वैल्यू शामिल करता है, effective क्वेरी, "शब्द OR समानार्थी शब्द" बन जाती है. उदाहरण के लिए, अगर "scifi" शब्द का मतलब समानार्थी शब्द से है "science fiction" के बाद एक क्वेरी "scifi" शब्द शामिल है, यह शामिल आइटम से मेल खाता है "scifi" या "science fiction."

समानार्थी शब्द, दोनों तरफ़ से इस्तेमाल नहीं किए जा सकते. अगर इसके बजाय क्वेरी "science fiction," Cloud Search क्वेरी के लिए कोई समानार्थी शब्द लागू नहीं करता. क्वेरी केवल इसमें शामिल आइटम से मेल खाती है "science fiction." आइटम में शामिल है "scifi" शामिल नहीं किए गए हैं.

सभी दोनों शब्दों को आपस में बदलने के लिए, हर शब्द को अलग-अलग परिभाषित करें:

शब्द समानार्थी शब्द
scifi science fiction
science fiction scifi

क्वेरी को प्रोसेस करने के दौरान, हायफ़नेशन और अन्य विराम चिह्नों को पहले ही हटा दिया जाता है समानार्थी शब्द लागू करने के लिए. उपयोगकर्ता की क्वेरी "sci-fi" _term "sci fi." से मेल खाता है जिन शब्दों को उपयोगकर्ता हाइफ़न लगा सकता है उनके लिए समानार्थी शब्द बनाने के लिए, सबसे पहले उन्हें नॉर्मलाइज़ करें हाइफ़न के बजाय खाली सफ़ेद जगह का इस्तेमाल करने के लिए _term.

उदाहरण में देखें कि ये डेफ़िनिशन, उपयोगकर्ता क्वेरी के ट्रीट से मैच करती हैं "sci-fi," "sci fi," "scifi," और "science fiction" को आपस में बदला जा सकता है:

शब्द समानार्थी शब्द
scifi science fiction, sci fi
sci fi science fiction, scifi
science fiction scifi, sci fi

डिफ़ॉल्ट रूप से, किसी भी डेटा सोर्स में समानार्थी शब्द पूरे डोमेन पर लागू होते हैं. खास तौर पर, सभी खोजों के लिए, समानार्थी शब्द लागू किए जाते हैं वह डेटा सोर्स पर ध्यान दिए बिना. अगर आपको डेटा सोर्स के हिसाब से समानार्थी शब्द चाहिए, तो डेटा सोर्स के हिसाब से समानार्थी शब्द तय करें.

Cloud Search SDK टूल का इस्तेमाल करके, दुनिया भर में एक जैसे मतलब देने वाले समानार्थी शब्दों को परिभाषित करना

शब्दों और उनके समानार्थी शब्दों को तय करने के लिए, Content Connector SDK टूल का इस्तेमाल किया जा सकता है. यहां जाएं: इसके लिए कॉन्टेंट कनेक्टर बनाएं निर्देश देखें.

नीचे दिए गए स्निपेट में बताया गया है कि RepositoryDoc जो CSV फ़ाइल रिकॉर्ड के आधार पर शब्द और समानार्थी शब्द का प्रतिनिधित्व करता है:

DictionaryConnector.java
/**
 * Creates a document for indexing.
 *
 * For this connector sample, the created document is domain public
 *  searchable. The content is a simple text string.
 *
 * @param record The current CSV record to convert
 * @return the fully formed document ready for indexing
 */
private ApiOperation buildDocument(CSVRecord record) {
  // Extract term and synonyms from record
  String term = record.get(0);
  List<String> synonyms = StreamSupport.stream(record.spliterator(), false)
      .skip(1) // Skip term
      .collect(Collectors.toList());

  Multimap<String, Object> structuredData = ArrayListMultimap.create();
  structuredData.put("_term", term);
  structuredData.putAll("_synonym", synonyms);

  if (Configuration.getBoolean("dictionary.attachedToSearchApp", false).get()) {
    structuredData.put("_onlyApplicableForAttachedSearchApplications", true);
  }

  String itemName = String.format("dictionary/%s", term);

  // Using the SDK item builder class to create the item
  Item item =
      IndexingItemBuilder.fromConfiguration(itemName)
          .setItemType(IndexingItemBuilder.ItemType.CONTENT_ITEM)
          .setObjectType("_dictionaryEntry")
          .setValues(structuredData)
          .setAcl(DOMAIN_PUBLIC_ACL)
          .build();

  // Create the fully formed document
  return new RepositoryDoc.Builder()
      .setItem(item)
      .build();
}

समानार्थी शब्द तय करते समय, इन बातों का ध्यान रखें:

  • डोमेन सार्वजनिक होना ज़रूरी है. पिछले उदाहरण में, ऐसा करने के लिए, ACL को DOMAIN_PUBLIC_ACL पर सेट किया जाता है.
  • आपकी कॉन्फ़िगरेशन फ़ाइल के लिए इन प्रॉपर्टी को तय नहीं किया जाना चाहिए क्योंकि ये नीतियां आपके कोड में डोमेन की सार्वजनिक सेटिंग को बदल देती हैं:
    • defaultAcl.mode=FALLBACK
    • defaultAcl.public=true

खोज ऐप्लिकेशन के लिए खास समानार्थी शब्द तय करना

डिफ़ॉल्ट रूप से, समानार्थी शब्द पूरी खोज के सभी डेटा सोर्स पर लागू होते हैं का इस्तेमाल करें.

हालांकि, मान लें कि आपके संगठन की अलग-अलग इंजीनियरिंग और सेल्स टीम हैं, और आपकी इच्छा है कि आपकी हर टीम को अलग खोज अनुभव मिले. इसमें ये भी शामिल हैं नौकरी के लिए इस्तेमाल होने वाले समानार्थी शब्द. इस स्थिति में, एक खोज बनाई जा सकती है एक ऐसा ऐप्लिकेशन जिसमें इंजीनियरिंग से जुड़े डेटा सोर्स और समानार्थी शब्दों के साथ-साथ अन्य खोज ऐप्लिकेशन, जिसमें बिक्री के लिए खास डेटा सोर्स और समानार्थी शब्द शामिल हों. इन्हें पूरा करना है इस लक्ष्य को पूरा करने के लिए, किसी खास डेटा सोर्स में हर समानार्थी शब्द को इंडेक्स करें _onlyApplicableForAttachedSearchApplications=true का इस्तेमाल करके. यह सेटिंग से समानार्थी शब्द सीमित हो जाते हैं, जैसे कि वे सिर्फ़ खोज पर लागू होते हैं ऐसे ऐप्लिकेशन जिनमें एक खास डेटा सोर्स शामिल हो.

उदाहरण के लिए, कोड की लाइन के पिछले कोड सैंपल पर जाने से, यह पक्का होता है कि इंडेक्स किए गए समानार्थी शब्द डेटा सोर्स के लिए तय किए गए हैं:

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);