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

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

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

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

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

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

คำพ้องความหมายจะไม่นำมาใช้แบบ 2 ทาง หากเป็นการค้นหาแทนสำหรับ "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

คุณสามารถใช้ 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);