กําหนดคําพ้องความหมาย

เป็นเรื่องปกติที่องค์กรจะใช้คำศัพท์เฉพาะหรือมีหลายวิธี เพื่ออ้างถึงแนวคิดหรือสิ่งต่างๆ คุณควรนิยามคำพ้องความหมายเพื่อสร้าง ความเทียบเท่าของคำเพื่อช่วยให้ผู้ใช้พบสิ่งของเมื่อทำการค้นหา

คำพ้องความหมายกำหนดโดยการจัดทำดัชนีรายการที่มีค่า _dictionaryEntry ซึ่งเป็นที่รู้จักกันดี สคีมา

รายการประเภท _dictionaryEntry อาจมีพร็อพเพอร์ตี้ต่อไปนี้

พร็อพเพอร์ตี้ ประเภท คำอธิบาย จำเป็นหรือไม่
_term string คำศัพท์ที่จะนิยาม ค่าที่แนะนำคือคำหรือวลีที่ไม่มีเครื่องหมายขีดกลางและไม่มีเครื่องหมายวรรคตอน ต้องระบุ
_synonym string (repeated) คำศัพท์สำรองที่จะรวมไว้ในการค้นหาที่ตรงกับสตริงที่กำหนดไว้ใน _term ต้องระบุ
_onlyApplicableForAttachedSearchApplications boolean ช่วยให้คุณจัดกลุ่มคำพ้องความหมายตามแหล่งข้อมูลและแอปพลิเคชันการค้นหา โปรดดูข้อมูลเพิ่มเติมที่หัวข้อกำหนดคำพ้องความหมายเฉพาะแหล่งข้อมูล ไม่บังคับ

เมื่อผู้ใช้ใส่ค่าของพร็อพเพอร์ตี้ _term ในการค้นหา คำค้นหาที่มีประสิทธิภาพจะกลายเป็น "คำ หรือ คำพ้องความหมาย" ตัวอย่างเช่น หาก นิยามคำว่า "scifi" ด้วยคำพ้องความหมาย "science fiction" ตามด้วยคำค้นหา ที่มีคำว่า "scifi" ตรงกับรายการที่มี "scifi" ก็ได้ หรือ "science fiction."

คำพ้องความหมายไม่สามารถใช้แบบสองทาง หากข้อความค้นหาคือ Cloud Search ของ "science fiction," ไม่ได้ใช้คำพ้องความหมายกับข้อความค้นหา ข้อความค้นหาตรงกับรายการที่มี "science fiction." รายการที่มี ละเว้น "scifi"

หากต้องการให้ทั้ง 2 คำนี้แทนกันได้ ให้นิยามคำศัพท์แต่ละคำแยกกันดังนี้

คำศัพท์ คำพ้องความหมาย
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

กำหนดคำพ้องความหมายเฉพาะแอปพลิเคชันการค้นหา

โดยค่าเริ่มต้น คำพ้องความหมายจะใช้กับแหล่งข้อมูลทั้งหมดในการค้นหาทั้งหมด แอปพลิเคชัน

อย่างไรก็ตาม สมมติว่าองค์กรของคุณมีทีมวิศวกรและฝ่ายขายแยกกัน และ ที่คุณต้องการให้แต่ละทีมได้รับประสบการณ์การค้นหาที่แตกต่างกัน รวมถึง คำพ้องความหมายเฉพาะบทบาทงาน ในกรณีนี้ คุณสามารถสร้างการค้นหาได้ 1 รายการ ที่มีแหล่งข้อมูลเฉพาะด้านวิศวกรรม และคำพ้องความหมาย แอปพลิเคชันการค้นหาที่มีแหล่งข้อมูลเฉพาะเกี่ยวกับการขายและคำพ้องความหมาย สิ่งที่ต้องการทำให้สำเร็จ เป้าหมายนี้ จัดทำดัชนีคำพ้องความหมายแต่ละคำในแหล่งข้อมูลเฉพาะ ด้วย _onlyApplicableForAttachedSearchApplications=true ช่วงเวลานี้ การตั้งค่าจะจำกัดคำพ้องความหมายที่จะใช้เฉพาะกับการค้นหา แอปพลิเคชันที่มีแหล่งข้อมูลเฉพาะ

ตัวอย่างเช่น การเพิ่มฟิลด์ บรรทัดของโค้ดต่อไปนี้ลงในตัวอย่างโค้ดก่อนหน้าจะทำให้คำพ้องความหมายที่จัดทำดัชนีไว้ เป็นแบบเฉพาะแหล่งข้อมูล ได้แก่

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);