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

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

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

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

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

เมื่อผู้ใช้ใส่_termค่าในคําค้นหา คําค้นหาที่มีผลจะกลายเป็น "คำหรือคำพ้องความหมาย" เช่น หากคุณกำหนด "scifi" ด้วยคำพ้องความหมาย "science fiction" คำค้นหาสำหรับ "scifi" จะตรงกับรายการที่มีคำใดคำหนึ่ง

โดยค่าเริ่มต้น คำพ้องความหมายจะไม่เป็นแบบสองทิศทาง การค้นหา "science fiction" จะตรงกับวลีนั้นทุกประการเท่านั้น เว้นแต่คุณจะกำหนดให้เป็นคำที่มี "scifi" เป็นคำพ้องความหมายด้วย หากต้องการให้ใช้คำแทนกันได้ ให้กำหนดแต่ละคำแยกกันดังนี้

คำศัพท์ คำพ้องความหมาย
scifi science fiction
science fiction scifi

การประมวลผลคำค้นหาจะนำการแบ่งคำและเครื่องหมายวรรคตอนออกก่อนใช้คำพ้องความหมาย คําค้นหาสำหรับ "sci-fi" จะตรงกับคำว่า "sci fi" หากต้องการรองรับคำที่มีเครื่องหมายขีดกลาง ให้แปลง _termเป็นช่องว่างแทนเครื่องหมายขีดกลาง

ตัวอย่างที่ใช้แทนกันได้

คำศัพท์ คำพ้องความหมาย
scifi science fiction, sci fi
sci fi science fiction, scifi
science fiction scifi, sci fi

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

กำหนดคำพ้องความหมายส่วนกลางโดยใช้ 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);