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

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

คำพ้องความหมายจะกำหนดโดยการจัดทำดัชนีรายการที่มีสคีมา _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

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

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

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

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

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);