Định nghĩa từ đồng nghĩa

Các tổ chức thường có thuật ngữ riêng hoặc nhiều cách để đề cập đến cùng một khái niệm. Việc xác định từ đồng nghĩa sẽ thiết lập sự tương đương giữa các thuật ngữ, giúp người dùng tìm thấy các mục trong quá trình tìm kiếm.

Xác định từ đồng nghĩa bằng cách lập chỉ mục các mục bằng lược đồ nổi tiếng _dictionaryEntry.

Các mục thuộc loại _dictionaryEntry có thể có các thuộc tính sau:

Thuộc tính Loại Mô tả Bắt buộc?
_term string Thuật ngữ cần xác định. Các giá trị được đề xuất là những từ hoặc cụm từ không có dấu gạch nối và không có dấu câu. Bắt buộc
_synonym string (repeated) Các thuật ngữ thay thế sẽ được đưa vào các truy vấn khớp với chuỗi được xác định trong _term. Bắt buộc
_onlyApplicableForAttachedSearchApplications boolean Cho phép bạn nhóm các từ đồng nghĩa theo nguồn dữ liệu và ứng dụng tìm kiếm. Để biết thêm thông tin, hãy xem bài viết Xác định từ đồng nghĩa dành riêng cho nguồn dữ liệu. Không bắt buộc

Khi người dùng đưa giá trị _term vào một truy vấn, truy vấn hiệu quả sẽ trở thành "term OR synonyms". Ví dụ: nếu bạn xác định "scifi" bằng từ đồng nghĩa "science fiction", thì một truy vấn cho "scifi" sẽ khớp với các mục chứa một trong hai thuật ngữ.

Theo mặc định, từ đồng nghĩa không có tính hai chiều. Một truy vấn cho "science fiction" chỉ khớp với cụm từ chính xác đó, trừ phi bạn cũng xác định cụm từ đó là một thuật ngữ có "scifi" là từ đồng nghĩa. Để các thuật ngữ có thể thay thế cho nhau, hãy xác định từng thuật ngữ riêng biệt:

Thuật ngữ Từ đồng nghĩa
scifi science fiction
science fiction scifi

Quá trình xử lý truy vấn sẽ loại bỏ dấu gạch nối và dấu câu trước khi áp dụng từ đồng nghĩa. Một truy vấn cho "sci-fi" sẽ khớp với thuật ngữ "sci fi". Để hỗ trợ các thuật ngữ có dấu gạch nối, hãy chuẩn hoá _term để sử dụng dấu cách thay vì dấu gạch nối.

Ví dụ về các thuật ngữ có thể thay thế cho nhau:

Thuật ngữ Từ đồng nghĩa
scifi science fiction, sci fi
sci fi science fiction, scifi
science fiction scifi, sci fi

Theo mặc định, từ đồng nghĩa được áp dụng trên toàn bộ miền và tất cả ứng dụng tìm kiếm. Để giới hạn các từ đồng nghĩa này, hãy xem bài viết Xác định từ đồng nghĩa dành riêng cho nguồn dữ liệu.

Xác định từ đồng nghĩa toàn cầu bằng SDK

Sử dụng SDK Trình kết nối nội dung để xác định các thuật ngữ và từ đồng nghĩa. Xem Tạo trình kết nối nội dung để biết thông tin chi tiết.

Đoạn mã này tạo a RepositoryDoc từ một bản ghi 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();
}

Các điểm quan trọng cần lưu ý:

  • Các mục từ đồng nghĩa phải là công khai trên miền. Ví dụ: bạn có thể đặt ACL thành DOMAIN_PUBLIC_ACL.
  • Tránh các chế độ cài đặt trong tệp cấu hình ghi đè chế độ cài đặt này, chẳng hạn như defaultAcl.mode=FALLBACK hoặc defaultAcl.public=true.

Xác định từ đồng nghĩa dành riêng cho ứng dụng tìm kiếm

Để cung cấp từ đồng nghĩa dành riêng cho nhóm (ví dụ: cho kỹ thuật so với bán hàng), hãy lập chỉ mục từng từ đồng nghĩa bằng _onlyApplicableForAttachedSearchApplications=true. Điều này sẽ hạn chế các từ đồng nghĩa đối với các ứng dụng tìm kiếm có chứa nguồn dữ liệu cụ thể.

Ví dụ:

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);