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

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

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

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

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

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

ระบบจะไม่ใช้คำพ้องความหมายแบบสองทิศทาง หากคำค้นหาเป็นของ "science fiction," Cloud Search ระบบจะไม่ใช้คำพ้องความหมายกับคำค้นหา การค้นหาจะตรงกับรายการที่มี "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 รายการที่มีแหล่งข้อมูลและคำพ้องความหมายเฉพาะด้านวิศวกรรม และแอปพลิเคชันการค้นหาอีก 1 รายการที่มีแหล่งข้อมูลและคำพ้องความหมายเฉพาะด้านการขาย หากต้องการบรรลุเป้าหมายนี้ ให้จัดทำดัชนีคำพ้องความหมายแต่ละคำในแหล่งข้อมูลที่เฉพาะเจาะจง โดยใช้ _onlyApplicableForAttachedSearchApplications=true การตั้งค่านี้จะจำกัดคำพ้องความหมายให้ใช้กับแอปพลิเคชันการค้นหาที่มีแหล่งข้อมูลที่เฉพาะเจาะจงเท่านั้น

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

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);