Tablestore SDK for Python kullanarak eşleşen belirteçleri içeren Text alanlarından parçalar döndürün ve bu belirteçleri işaretleyin.
Önkoşullar
Tablestore SDK for Python yükleyin ve bir istemci başlatın.
Özetleme ve vurgulama özelliği için SDK sürüm 6.0.0 veya üzeri gerekir. En son SDK sürümünü kullanmanızı öneririz.
Arama dizini oluştururken hedef Text alanı için enable_highlighting parametresini True olarak ayarlayın.
Açıklama
Özetleme ve vurgulama, eşleşen belirteçlerin etrafındaki metin parçalarını çıkarır ve bu belirteçleri ön etiketler ile arka etiketler kullanarak işaretler. Bu özellik yalnızca Text alanlarını destekler. Bir sorguda alanları ve parça yapılandırmalarını belirtmek için SearchQuery.highlight kullanın.
Tablestore SDK for Python 6.4.6; TermQuery, TermsQuery, PrefixQuery, WildcardQuery, RangeQuery, BoolQuery, MatchQuery ve MatchPhraseQuery için özetleme ve vurgulamayı destekler. BoolQuery için desteklenen alt sorgu türleri tarafından kullanılan alanları vurgulayabilirsiniz. NestedQuery için eşleşen alt satır vurgularını InnerHits.highlight içinde yapılandırın. Daha fazla bilgi için bkz. İç içe geçmiş sorgu.
MatchQuery veya MatchPhraseQuery kullanırken bir eşleşen belirteç birden fazla ön etiket ve arka etiket çiftiyle işaretlenebilir. MatchPhraseQuery, maksimum anlamsal çözümleyici kullanan bir Text alanı için vurgulamayı desteklemez. Bir parça sınırı eşleşen bir belirteci bölebilir ve belirtecin vurgulanmasını engelleyebilir.
Aşağıdaki örnek description alanında tablestore belirtecini sorgular ve eşleşen belirteçleri parçalar içinde <b> ve </b> ile işaretler.
query = MatchQuery("description", "tablestore")
highlight = Highlight(
[
HighlightParameter(
"description",
number_of_fragments=1,
fragment_size=100,
pre_tag="<b>",
post_tag="</b>",
)
],
HighlightEncoder.PLAIN_MODE,
)
response = client.search(
"example_table",
"example_index",
SearchQuery(query, limit=10, highlight=highlight),
)
for hit in response.search_hits:
for field in hit.highlight_result.highlight_fields:
print(field.field_name, field.field_fragments)
Parametreler
search_query.highlight öğesinin türü Highlight şeklindedir. Aşağıdaki tabloda Highlight ve HighlightParameter yapılandırmalarının iki düzeyi tam yollar kullanılarak açıklanmaktadır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yanıt
Vurgulama sonuçları SearchResponse.search_hits[].highlight_result yolunda bulunur ve aşağıdaki yapıya sahiptir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tuple uyumlu yanıt
Tablestore SDK for Python 5.2.0 sürümünden başlayarak arama API'leri tuple yerine yanıt nesneleri döndürür. Sürüm 5.1.0 ve önceki sürümler doğrudan tuple döndürür. Sürüm 5.2.1 ve sonraki sürümlerde önceki sürümlerle uyumlu bir tuple elde etmek için SearchResponse.v1_response() yöntemini çağırabilirsiniz. Yeni kodlarda yanıt alanları genişletildiğinde paket açma hatalarını önlemek için SearchResponse özniteliklerine doğrudan erişin.
(
rows,
next_token,
total_count,
is_all_succeed,
agg_results,
group_by_results,
search_hits,
) = response.v1_response()