Taksonomi eş anlamlılarının Arama API'sı ile sağlam bir şekilde çalışması nasıl sağlanır?


20

Etiket eşanlamlıları, birçok sitede popüler, önemli bir özelliktir (örneğin, StackExchange'te kullanılır) ve "Kendi kendinize yuvarlayın" özel eş anlamlı sistemleri lehine bırakılmadan önce Drupal 6'nın temel Taksonomi modülünün bir parçası olan taksonomi eşanlamlılarıdır. Field API kullanarak .

Eşanlamlılar güvenilir bir şekilde çalıştığında, aramada son derece yararlıdırlar; Örneğin, "Amerika" aramaları "ABD", vb. etiketli içerik bulmak emin olmak için. Ancak, popüler Arama API - Facet API ile çalışırken bu özelliği uygulamak için standart yöntemin ne olduğunu hakkında hiçbir ipucu bulamıyorum Düğüm aramaları için ilgili tümleşik arama modülleri ailesi.

Bu tür modül kümeleriyle çalışırken, uyguladığınız sistemlerin topluluğun ve modül sahiplerinin düşüncesinin karşısına çıkmadığından emin olmak için "akışla gitmek" önemlidir. Tahılı karşı karşıya getirdiklerinde, pul pul olurlar ve bu modüllerde gelecekte yapılacak değişiklikler nedeniyle kırılma riski vardır.

Arama API'sını kullanan siteler için D7'de sınıflandırma eşanlamlılarını uygulamak için güvenilir / sağlam / standart / beklenen bir yöntem nedir? (özellikle, Arama API'sı Solr ile , ancak arama API'sının belirli bir arama sağlayıcısını soyutlama girişimlerinin bu durumda işe yarayacağını umuyorum).

Bunun için işe yarayan bir sisteminiz varsa, ancak bu, anladığınız bir şeyse ve bunun tahıllara karşı olup olmadığından emin değilseniz (Drupal'da oldukça yaygın), lütfen yine de bilgisayarınızdan gelen bilgilerle paylaşın. Search API-Facet API ailesindeki hangi özelliklerin ve modüllerin iyi çalıştığı ve çalışmadığı test, kullanım ve deneyim.

Araştırmada bulduğum bazı makul ama potansiyel olarak lapa lapa seçenekleri:

  • D7 Arama Eş Anlamlıları modülü var, ancak çok az kullanılmış gibi görünüyor ve çalıştığına veya Arama API'sı gibi üçüncü taraf arama modülleriyle çalışmaya devam edeceğine dair bir onay yok (Drupal çekirdek araması göz önünde bulundurularak tasarlandı). Düzenleme: Ayrıca genel olarak D7'de çok güvenilir görünmüyor .
  • Bir Taksonomi kelime dağarcığına "Eş anlamlılar" adlı bir referans alanı eklemek ve bu alanı Arama API'sındaki terimden düğümün terimine eşit ağırlıkta dizine eklemek teorik olarak mümkündür. Bu, metin aramaları için işe yarar, ancak tüm Arama API'sı ailesine sorunsuz bir şekilde yerleşen sağlam bir şey yerine sığ bir MacGuyver-y koli bandı çözümü gibi hisseder. Örneğin, "Birleşik Krallık" terimi "İngiltere" eşanlamlısına sahipse, "İngiltere" için arama yapan bir kişi Birleşik Kindgom ile etiketlenmiş sonuçlar elde eder, ancak otomatik tamamlanan bir Taksonomiye maruz kalan filtreye "İngiltere" yazan veya bir Taksonomi gerçeğiyle İngiltere'yi seçen biri "United Kingdom" ile etiketlenmiş hiçbir içerik göremezsiniz. *****
  • Başka bir benzer olasılık, kelime dağarcığı terimine (veya virgülle ayrılmış, sanırım) çok değerli düz metin alanı "Eş anlamlılar" eklemek ve bunu yukarıdaki terim adıyla aynı ağırlıkla endekslemektir. Ancak bu, yukarıdaki örnekte, daha da kötüsü olmasa da, yukarıdaki gibi benzer sorunlara sahiptir; Ad ve eşanlamlıları ("Birleşik Krallık (İngiltere, İngiltere)") birleştirerek bileşik bir alan oluşturmanın bir yolu olabilir ve bunu kullanmak için yönler / açık filtreler / vb. Ayarlayabilir ... ama hiçbir şekilde düşünemiyorum endişe verici bir şekilde kaba olmayan ve tahıllara karşı endişe verici olmayan bir şey. Düzenleme: Arama API'sı Kombine böyle bir şey için tasarlanmış gibi görünüyor, ama ben '
  • Daha sonra, her şeyi terim adına sıkıştırmanın son çare seçeneği var: bunun istenmediği ve birçok durumda çok çirkin listeler yapacağını açıkça belirtmeliyiz (örneğin, "Kuzey" Kore (PRK, DPRK, Kore Demokratik Halk Cumhuriyeti) "...). Ya da kısa versiyonu gösteren bir "Görünen ad" alanına sahip olmak ve bunu ad terimi yerine kullanmak için arama dışındaki her şeyi (tüm Görünümler, Pathauto, adı kullanan diğer tüm katkı / çekirdek modülleri) ayarlamak ... tekrar, çok acayip ve tahıllara karşı.
  • Apache Solr, eş anlamlıların bir metin dosyasının okunduğu ve bu terimlerin onu kullanan aramalarda eşanlamlı olarak ele alındığı Eş anlamlı bir özelliğe sahiptir. Ancak, Solr kullanan bir Arama API'sı kurulumunda bu mümkün olsa da, bu durum modül sahipleri tarafından desteklenmeyen 'kendi sorumluluğundaki girişimi' gelişmiş Solr yapılandırması olarak kabul edilir . Ayrıca, sitenin dilinde genel eş anlamlılık için, özellikle bir sınıflandırma bağlamında eş anlamlıdan daha uygundur . Örneğin, İngiltere, İskoçya vb. İngiltere'den ayrımcılık yapmayan bir sınıflandırmaya sahip bir site, bunları etiketleme bağlamında eşanlamlı olarak değerlendirmek, ancak gövde metni üzerinde yapılan aramalar bağlamında eşanlamlı olarak değerlendirmek istemeyebilir. Düzenleme: Head Facet API yöneticisi bu rotaya karşı uyarıyor çünkü Solr entegrasyon modülleri metin değil TID olarak terimlerle çalışır.

Bunun kusurlu bir örnek olduğunun farkındayım, çünkü İngiltere / İngiltere ve genel olarak ülkelerde insanlar sadece bir veya diğeri olan listeleri kullanmaya alışkınlar. İnsanların eşanlamlı arama yapmayı düşünmedikleri daha az basit durumlar (örneğin ürün kategorileri) vardır.

Güncelleme: Drupal.org Facet API kuyruğundaki yeni bir başlıktaki ilgili bilgiler . Ayrıca Arama API'sı kuyruğunda (şu anda yanıtlanmamış) bir iş parçacığı .

(avukatlar drupal.org destek taleplerinin ve drupal'ın aynı konuyla ilgili soruları yanıtlamanın uygun olup olmadığını merak eden herhangi bir kural: evet, aslında modül koruyucularından baskı alması teşvik edilir )


1
Bunun çözümünü buldun mu? Şimdi tam olarak bu problemim var.
vishal

Yanıtlar:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.