Tüm Ürünler
Search
Belge Merkezi

Tablestore:Summary and highlighting

Son Güncelleme:Oct 02, 2026

Java için Tablestore SDK ile özet ve vurgulama özelliğini kullanarak eşleşen terimleri içeren Text alanlarından parçalar döndürün ve bu terimleri yapılandırılan etiketlerle işaretleyin.

Önkoşullar

Java için Tablestore SDK öğesini yükleyin ve bir istemci başlatın.

Özellik açıklaması

Özet ve vurgulama özelliği, bir sorgu tarafından eşleştirilen terimlerin etrafındaki metin parçalarını ayıklar ve eşleşen terimleri ön etiketler ile arka etiketler arasına alır. Sorgu eşleşmelerinin bağlamını görüntülemek için bu parçaları kullanabilirsiniz. Bu özellik yalnızca Text alanlarını destekler.

Özet ve vurgulama özelliğini kullanmadan önce, bir arama dizini oluştururken alan için enableHighlighting parametresini true olarak ayarlayın. Bir sorguda, döndürmek istediğiniz parçaların alanlarını ve parça ayarlarını belirtmek için SearchQuery.highlight öğesini kullanın. Alan, özet ve vurgulamayı destekleyen bir sorgu koşulunda kullanılmalıdır. Aksi takdirde, alan için vurgulanmış parçalar döndürülmez.

Aşağıdaki sorgu türleri özet ve vurgulama sonuçlarını döndürebilir: TermQuery, TermsQuery, MatchQuery, MatchPhraseQuery, PrefixQuery, WildcardQuery, RangeQuery, BoolQuery, ConstScoreQuery ve NestedQuery.

Bir BoolQuery veya ConstScoreQuery için, yukarıdaki yedi sorgu türünün alt sorguları tarafından kullanılan alanlar için özet ve vurgulamayı yapılandırabilirsiniz. Bir NestedQuery için, eşleşen alt satırlar için özet ve vurgulama sonuçlarını döndürmek üzere InnerHits.highlight öğesini yapılandırın. Daha fazla bilgi için bkz. İç içe geçmiş sorgu.

Not
  • MatchQuery veya MatchPhraseQuery kullanıyorsanız, eşleşen bir terim birden fazla ön etiket ve arka etiket çiftiyle çevrilebilir.

  • Bir Text alanı için maksimum anlamsal belirteçleştirme kullanılıyorsa, MatchPhraseQuery özet ve vurgulamayı desteklemez.

  • Bir parça sınırı eşleşen bir terimi bölebilir. Bu durumda terim vurgulanmaz.

Aşağıdaki örnek, description alanında tablestore terimini içeren satırları almak için bir eşleşme sorgusu kullanır. Örnek, döndürülen parçalardaki eşleşen terimleri <b> ve </b> etiketleriyle çevreler. description alanı, özet ve vurgulamanın etkinleştirildiği bir Text alanıdır.

String tableName = "example_table";
String indexName = "example_index";

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore");

HighlightParameter highlightParameter = new HighlightParameter();
highlightParameter.setPreTag("<b>");
highlightParameter.setPostTag("</b>");

Highlight highlight = new Highlight();
highlight.addFieldHighlightParam("description", highlightParameter);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);
searchQuery.setHighlight(highlight);
searchQuery.setLimit(10);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchResponse response = client.search(request);
for (SearchHit hit : response.getSearchHits()) {
    HighlightResultItem resultItem = hit.getHighlightResultItem();
    if (resultItem == null) {
        continue;
    }
    HighlightField field = resultItem.getHighlightFieldByName("description");
    if (field != null) {
        System.out.println(field.getFragments());
    }
}

Parametreler

request.searchQuery.highlight öğesi Highlight türündedir. fieldHighlightParams içindeki değerler, tek tek alanlar için parça davranışını yapılandıran HighlightParameter nesneleridir.

Aşağıdaki tabloda iki yapılandırma düzeyi olan Highlight ve HighlightParameter tam parametre yolları kullanılarak açıklanmaktadır.

Ad

Tür

Açıklama

fieldHighlightParams (gerekli)

Map<String, HighlightParameter>

Alan adları ve parça ayarları. Anahtar, özet ve vurgulama sonuçlarını döndürmek istediğiniz bir alanın adıdır. Değeri, alan için HighlightParameter nesnesidir. Alanın özet ve vurgulaması etkinleştirilmiş olmalı ve desteklenen bir sorgu koşulunda kullanılmış olmalıdır.

highlightEncoder (isteğe bağlı)

HighlightEncoder

Vurgulanmış parçalardaki orijinal metin için kodlama yöntemi. Geçerli değerler:

  • PLAIN (varsayılan): Orijinal metni kodlamaz.

  • HTML: Orijinal metni HTML'den kaçırır. Sonuçları bir web sayfasında görüntülüyorsanız bu değeri kullanın. <, >, ", ' ve / karakterleri sırasıyla &lt;, &gt;, &quot;, &#x27; ve &#x2F; olarak kaçırılır.

fieldHighlightParams[].numberOfFragments (isteğe bağlı)

Integer

Bir alan için döndürülecek maksimum vurgulanmış parça sayısı. Bu parametreyi 1 olarak ayarlamanız önerilir.

fieldHighlightParams[].fragmentSize (isteğe bağlı)

Integer

Her bir parçanın hedef uzunluğu. Varsayılan değer 100'dür. Gerçek parça uzunluğu bu değerden farklı olabilir.

fieldHighlightParams[].preTag (isteğe bağlı)

String

Eşleşen bir terim için ön etiket. Varsayılan değer <em>'dir. <b> gibi özel bir etiket belirtebilirsiniz. preTag ve postTag parametrelerini birlikte yapılandırmanız gerekir. Desteklenen karakterler şunlardır: < > " ' /, a-z, A-Z ve 0-9.

fieldHighlightParams[].postTag (isteğe bağlı)

String

Eşleşen bir terim için arka etiket. Varsayılan değer </em>'dir. </b> gibi özel bir etiket belirtebilirsiniz. preTag ve postTag parametrelerini birlikte yapılandırmanız gerekir. Desteklenen karakterler preTag ile aynıdır.

fieldHighlightParams[].highlightFragmentOrder (isteğe bağlı)

HighlightFragmentOrder

Birden fazla vurgulanmış parçanın döndürülme sırası. TEXT_SEQUENCE (varsayılan), parçaları orijinal metindeki konumlarına göre sıralar. SCORE, parçaları eşleşen terimlerin alaka puanlarına göre sıralar.

Yanıt

Sorgu yanıtı

search yöntemi bir SearchResponse nesnesi döndürür. Aşağıdaki alanlar özet ve vurgulama ile ilgilidir.


Ad


Tür


Açıklama


searchHits


List<SearchHit>


Sorgu eşleşmeleri; getSearchHits() çağrısıyla alınabilir. Her öğe satır verilerini ve özet ile vurgulama sonuçlarını içerir.


isAllSuccess


boolean


Tüm dizin bölümlerinin sorgulanıp sorgulanmadığını gösterir. Değeri isAllSuccess() çağrısıyla alınabilir. Değer false ise kısmi sonuçlar döndürülür.

Sorgu eşleşmesi

response.searchHits[] öğesi SearchHit türündedir. Aşağıdaki alanlar özet ve vurgulama ile ilgilidir.


Ad


Tür


Açıklama


row


Row


Satır verileri. Değeri getRow() çağrısıyla alınabilir.


highlightResultItem


HighlightResultItem


Satırdaki tüm alanların özet ve vurgulama sonuçları. Değeri getHighlightResultItem() çağrısıyla alınabilir. Satırda vurgulama sonucu yoksa değer null olur.

Vurgulama sonucu

response.searchHits[].highlightResultItem öğesi HighlightResultItem türündedir ve aşağıdaki alanı içerir.


Ad


Tür


Açıklama


highlightFields


Map<String, HighlightField>


Satırdaki alanlar için vurgulama sonuçları. Haritayı getHighlightFields() çağrısıyla alınabilir. Belirli bir alan için sonucu almak üzere getHighlightFieldByName(fieldName) öğesini de çağırabilirsiniz. Yöntem, alanda vurgulama sonucu yoksa null döndürür.

Alan parçaları

response.searchHits[].highlightResultItem.highlightFields[fieldName] öğesi HighlightField türündedir ve aşağıdaki alanı içerir.


Ad


Tür


Açıklama


fragments


List<String>


Alan için vurgulanmış parçalar. Listeyi getFragments() çağrısıyla alınabilir. Parçalardaki eşleşen terimler yapılandırılan ön etiket ve arka etiketle çevrilidir.