Làm cách nào để các từ đồng nghĩa phân loại hoạt động mạnh mẽ với API tìm kiếm?


20

Từ đồng nghĩa thẻ là một tính năng phổ biến, quan trọng trong nhiều trang web (ví dụ được sử dụng ở đây trên StackExchange) và từ đồng nghĩa phân loại từng là một phần của mô-đun Phân loại lõi của Drupal 6, trước khi được sử dụng cho các hệ thống từ đồng nghĩa tùy chỉnh "Roll your own" sử dụng API trường .

Khi các từ đồng nghĩa hoạt động đáng tin cậy, chúng cực kỳ hữu ích trong tìm kiếm; ví dụ: để đảm bảo rằng các tìm kiếm cho "America" ​​tìm nội dung được gắn thẻ "USA", v.v. Tuy nhiên, tôi không thể tìm thấy bất kỳ khách hàng tiềm năng nào về phương pháp tiêu chuẩn để triển khai tính năng này khi làm việc với API tìm kiếm phổ biến - API Facet họ các mô-đun tìm kiếm tích hợp có liên quan, cho các tìm kiếm Node.

"Đi theo dòng chảy" rất quan trọng khi làm việc với các cụm mô-đun như thế này, để đảm bảo rằng các hệ thống bạn triển khai không đi ngược lại suy nghĩ của cộng đồng và người bảo trì mô-đun. Khi chúng đi ngược lại hạt gạo, chúng sẽ bị bong ra và có nguy cơ bị phá vỡ bởi những thay đổi trong tương lai đối với các mô-đun này.

Phương pháp đáng tin cậy / mạnh mẽ / tiêu chuẩn / dự kiến ​​để triển khai các từ đồng nghĩa phân loại trong D7 cho các trang web sử dụng API tìm kiếm là gì? (đặc biệt, với API tìm kiếm Solr , nhưng tôi hy vọng rằng các nỗ lực của API tìm kiếm để trừu tượng hóa nhà cung cấp dịch vụ tìm kiếm cụ thể sẽ hoạt động trong trường hợp này).

Nếu bạn có một hệ thống cho việc này có vẻ hoạt động, nhưng đó là thứ bạn đã tìm ra và bạn không chắc nó có hay không chống lại hạt (khá phổ biến trong Drupal), vui lòng chia sẻ dù sao với thông tin từ bạn thử nghiệm, sử dụng và trải nghiệm về các tính năng và mô-đun trong họ API API tìm kiếm mà nó hoạt động và không hoạt động tốt.

Một số tùy chọn hợp lý nhưng có khả năng hoàn hảo mà tôi đã tìm thấy trong nghiên cứu:

  • Có mô-đun Từ đồng nghĩa Tìm kiếm D7 , nhưng có vẻ ít được sử dụng và không có xác nhận nào hoạt động hoặc sẽ tiếp tục hoạt động với các mô-đun tìm kiếm của bên thứ 3 như API tìm kiếm (được thiết kế với mục đích tìm kiếm lõi Drupal). Chỉnh sửa: nhìn chung cũng không quá đáng tin cậy trong D7 .
  • Về mặt lý thuyết, có thể thêm trường tham chiếu thuật ngữ gọi là "Từ đồng nghĩa" vào từ vựng Phân loại và lập chỉ mục trường này từ thuật ngữ trong API tìm kiếm với trọng số tương đương với thuật ngữ trên chính nút đó. Điều này sẽ hoạt động cho các tìm kiếm văn bản, nhưng cảm giác giống như một giải pháp băng keo MacGuyver-y nông hơn là một thứ gì đó mạnh mẽ có thể kết hợp trơn tru với toàn bộ họ API tìm kiếm. Ví dụ: nếu thuật ngữ "Vương quốc Anh" có từ đồng nghĩa "Anh", ai đó đang tìm kiếm trên 'Anh' sẽ nhận được kết quả được gắn thẻ với United Kindeim, nhưng ai đó nhập "Anh" vào bộ lọc Phân loại tự động hoàn chỉnh hoặc chọn Anh với thực tế Phân loại sẽ không thấy bất kỳ nội dung nào được gắn thẻ "Vương quốc Anh". *****
  • Một khả năng tương tự khác là thêm một trường văn bản đơn giản đa giá trị "Từ đồng nghĩa" vào từ vựng (hoặc thậm chí được phân tách bằng dấu phẩy, tôi đoán) và lập chỉ mục cho nó với cùng trọng số với tên thuật ngữ như trên. Nhưng điều này cũng có vấn đề tương tự, nếu không nói là tồi tệ hơn ở trên trong ví dụ trên, "Anh" thậm chí sẽ không được liệt kê dưới dạng tùy chọn trong một khía cạnh hoặc bộ lọc tiếp xúc. Có thể có một số cách để tạo trường tổng hợp bằng cách kết hợp tên và từ đồng nghĩa ("Vương quốc Anh (Anh, Anh)") và đặt các khía cạnh / bộ lọc tiếp xúc / vv để sử dụng ... nhưng tôi không thể nghĩ ra bất kỳ cách nào để làm điều này không đáng lo ngại và điều đó không cảm thấy đáng lo ngại đối với ngũ cốc. Chỉnh sửa: API tìm kiếm Kết hợp dường như được thiết kế cho một cái gì đó như thế này, nhưng tôi
  • Sau đó, có lựa chọn cuối cùng là chỉ nhồi nhét mọi thứ vào tên thuật ngữ: rõ ràng điều này không được mong muốn và trong nhiều trường hợp sẽ tạo ra các danh sách rất xấu (ví dụ: hãy tưởng tượng một danh sách điều hướng của các quốc gia được viết ra như "Bắc Hàn Quốc (PRK, DPRK, Cộng hòa Dân chủ Nhân dân Triều Tiên) "...). Hoặc có trường "Tên hiển thị" hiển thị phiên bản ngắn và đặt mọi thứ trừ tìm kiếm (tất cả Chế độ xem, Pathauto, mọi mô-đun đóng góp / lõi khác sử dụng tên thuật ngữ) để sử dụng tên này thay vì tên thuật ngữ ... một lần nữa, rất hacky và rất chống lại hạt.
  • Apache Solr có một tính năng Từ đồng nghĩa, trong đó một tệp văn bản của các từ đồng nghĩa được đọc và các thuật ngữ này được coi là từ đồng nghĩa trên các tìm kiếm sử dụng nó. Tuy nhiên, mặc dù có thể trong thiết lập API tìm kiếm sử dụng Solr, nhưng điều này được các nhà bảo trì mô-đun coi là không được hỗ trợ 'cố gắng tự cấu hình Solr nâng cao . Ngoài ra, nó phù hợp hơn cho từ đồng nghĩa chung trong ngôn ngữ của trang web hơn là từ đồng nghĩa cụ thể trong bối cảnh phân loại. Ví dụ: một trang web có phân loại không phân biệt Anh, Scotland, v.v. từ Anh có thể muốn coi chúng đồng nghĩa trong bối cảnh gắn thẻ, nhưng không đồng nghĩa trong bối cảnh tìm kiếm trên văn bản cơ thể. Chỉnh sửa: Trình duy trì API Facet cảnh báo chống lại tuyến đường này vì các mô đun tích hợp Solr hoạt động với các thuật ngữ như TID không phải là văn bản.

Tôi biết rằng đây là một ví dụ thiếu sót vì trong trường hợp của Vương quốc Anh / Anh và các quốc gia nói chung, mọi người thường sử dụng các danh sách chỉ có cái này hoặc cái kia. Có rất nhiều trường hợp ít đơn giản hơn (ví dụ như danh mục sản phẩm) mà mọi người sẽ không nghĩ đến việc tìm kiếm một từ đồng nghĩa.

Cập nhật: Thông tin liên quan trong một chủ đề mới trên hàng đợi API Facet của Drupal.org . Ngoài ra, một luồng (hiện chưa được trả lời) trên hàng đợi API tìm kiếm .

(bất kỳ quy tắc luật sư tự hỏi nếu nó là okay cho có được yêu cầu hỗ trợ drupal.org và câu trả lời câu hỏi drupal trên cùng một chủ đề: vâng, đó là, trên thực tế nó khuyến khích để có những áp lực giảm bảo trì mô-đun )


1
bạn đã tìm ra giải pháp cho vấn đề này chưa? Tôi có vấn đề chính xác này bây giờ.
vishal

Câu trả lời:


2

Tôi đã sử dụng mô-đun Từ đồng nghĩa tuyệt vời của bojanz . Nó là một bản viết lại hoàn chỉnh của chức năng đồng nghĩa D6, với một số tiếng chuông và còi mới. Có vẻ như nó có thể làm hầu hết những gì bạn cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.