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

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

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

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

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

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

คำพ้องความหมายจะไม่เป็นแบบ 2 ทางโดยค่าเริ่มต้น คำค้นหาสำหรับ "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);