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

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

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

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

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

เมื่อผู้ใช้ใส่ค่าของพร็อพเพอร์ตี้ _term ในการค้นหา คำค้นหาที่มีประสิทธิภาพจะกลายเป็น "คําหรือคําพ้อง" เช่น หากกำหนดคำ "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

คุณใช้ 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);