Bir kuruluşun benzersiz terminolojisi veya bir kavramı ya da şeyi ifade etmenin birden fazla yolu olması yaygın bir durumdur. Kullanıcıların arama yaparken öğeleri bulmasına yardımcı olmak için terimlerin eşdeğerliğini belirleyecek eş anlamlılar tanımlamanız gerekir.
Eş anlamlılar, öğeleri _dictionaryEntry
iyi bilinen şemasıyla dizine ekleyerek tanımlanır.
_dictionaryEntry
türündeki öğeler aşağıdaki özelliklere sahip olabilir:
Mülk | Tür | Açıklama | Zorunlu mu? |
---|---|---|---|
_term |
string | Tanımlanacak terim. Önerilen değerler, noktalama işareti içermeyen ve tireyle ayrılmamış kelimeler veya kelime öbekleridir. | Zorunlu |
_synonym |
string (repeated) | _term içinde tanımlanan dizeyle eşleşen sorgulara dahil edilecek alternatif terimler. |
Zorunlu |
_onlyApplicableForAttachedSearchApplications |
boolean | Eş anlamlı kelimeleri veri kaynağına ve arama uygulamasına göre gruplandırmanıza olanak tanır. Daha fazla bilgi için Veri kaynağına özgü eş anlamlı kelimeler tanımlama başlıklı makaleyi inceleyin. | İsteğe bağlı |
Bir kullanıcı sorguya _term
özelliğinin değerini eklediğinde etkili sorgu "terim VEYA eş anlamlılar" olur. Örneğin, "scifi" terimi "science fiction" eş anlamlısıyla tanımlanırsa "scifi" kelimesini içeren bir sorgu, "scifi" veya "science fiction." terimlerini içeren öğelerle eşleşir.
Eş anlamlı kelimeler iki yönlü olarak uygulanmaz. Sorgu bunun yerine "science fiction," Cloud Search içinse sorguya eş anlamlı kelimeler uygulanmaz. Sorgu yalnızca "science fiction." içeren öğelerle eşleşiyor. "science fiction." içeren öğeler atlanıyor."scifi"
Her iki terimin de birbirinin yerine kullanılabilmesini sağlamak için her terimi ayrı ayrı tanımlayın:
Terim | Eş anlamlılar |
---|---|
scifi | science fiction |
science fiction | scifi |
Sorgu işleme sırasında, eş anlamlılar uygulanmadan önce tire ve diğer noktalama işaretleri kaldırılır. Kullanıcı sorgusu "sci-fi"
_term
ile eşleşiyor. "sci fi."
Kullanıcılar tarafından tireyle ayrılmış olabilecek terimler için eş anlamlılar oluşturmak üzere önce _term
öğesini normalleştirerek tire yerine boşluk kullanın.
Örneğe devam edersek aşağıdaki tanımlar, kullanıcı sorgularıyla eşleşir ve treat "sci-fi," "sci fi," "scifi," ile "science fiction" kelimelerini birbirinin yerine kullanılabilir olarak değerlendirir:
Terim | Eş anlamlılar |
---|---|
scifi | science fiction, sci fi |
sci fi | science fiction, scifi |
science fiction | scifi, sci fi |
Varsayılan olarak, herhangi bir veri kaynağındaki eş anlamlılar tüm alan için geçerlidir. Daha net bir ifadeyle, eş anlamlı kelimeler, veri kaynağından bağımsız olarak tüm aramalar için arama uygulamalarında kullanılır. Veri kaynağına özgü eş anlamlı kelimeler istiyorsanız Veri kaynağına özgü eş anlamlı kelimeler tanımlama başlıklı makaleyi inceleyin.
Cloud Search SDK'yı kullanarak genel eş anlamlılar tanımlama
Terimleri ve eş anlamlılarını tanımlamak için Content Connector SDK'sını kullanabilirsiniz. Bağlayıcı oluşturma talimatları için İçerik bağlayıcı oluşturma başlıklı makaleyi inceleyin.
Aşağıdaki snippet, bir CSV dosyası kaydına dayalı olarak terimi ve eş anlamlıyı temsil eden bir
RepositoryDoc
oluşturmayı gösterir:
Eş anlamlıları tanımlarken aşağıdakilere dikkat edin:
- Eş anlamlı girişlerin herkese açık olması gerekir. Önceki örnekte bu, ACL'yi
DOMAIN_PUBLIC_ACL
olarak ayarlayarak gerçekleştirilir. - Aşağıdaki özellikler, kodunuzdaki alan herkese açık ayarını geçersiz kıldığı için yapılandırma dosyanızda tanımlanmamalıdır:
defaultAcl.mode=FALLBACK
defaultAcl.public=true
Arama uygulamasına özel eş anlamlılar tanımlama
Varsayılan olarak, eş anlamlı kelimeler tüm arama uygulamalarındaki tüm veri kaynaklarına uygulanır.
Ancak kuruluşunuzda ayrı mühendislik ve satış ekipleri olduğunu ve her ekibe, iş rolüne özgü eş anlamlı kelimeler de dahil olmak üzere farklı bir arama deneyimi sunmak istediğinizi varsayalım. Bu durumda, mühendisliğe özgü bir veri kaynağı ve eş anlamlı kelimeler içeren bir arama uygulaması ile satışa özgü bir veri kaynağı ve eş anlamlı kelimeler içeren başka bir arama uygulaması oluşturabilirsiniz. Bu hedefi gerçekleştirmek için belirli bir veri kaynağındaki her eş anlamlı kelimeyi _onlyApplicableForAttachedSearchApplications=true
kullanarak dizine ekleyin. Bu ayar, eş anlamlı kelimeleri yalnızca belirli bir veri kaynağını içeren arama uygulamalarına uygulanacak şekilde sınırlar.
Örneğin, önceki kod örneğine aşağıdaki kod satırını eklemek, dizine eklenen eş anlamlı kelimelerin veri kaynağına özgü olmasını sağlar:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);