attributesToSnippet parameter defines which attributes should return snippets—short text fragments surrounding matched query terms.
Usage
- The default snippet length is 10 words unless otherwise specified, for example
"content:80". - Use
"*"to apply snippets to all attributes. - To turn off snippeting, pass an empty array (
[]). - Snippeting is limited to the first 50,000 characters per result (or 5,000 logograms for CJK languages).
- When enabled, the search response includes a
_snippetResultobject.
_snippetResult
Hide child attributes
Hide child attributes
string
The snippeted text, with highlighting tags applied.
If truncated, the snippet ends with an ellipsis (
Customize the ellipsis with
… by default).Customize the ellipsis with
snippetEllipsisText.enum<string>
Indicates how closely the attribute matched the search query.
Possible values:
none, partial, full.Examples
Set default attributes to snippet
Current API clients
Current API clients
var response = await client.SetSettingsAsync(
"INDEX_NAME",
new IndexSettings
{
AttributesToSnippet = new List<string> { "content:80", "description" },
}
);
final response = await client.setSettings(
indexName: "INDEX_NAME",
indexSettings: IndexSettings(
attributesToSnippet: [
"content:80",
"description",
],
),
);
response, err := client.SetSettings(client.NewApiSetSettingsRequest(
"INDEX_NAME",
search.NewEmptyIndexSettings().SetAttributesToSnippet(
[]string{"content:80", "description"})))
if err != nil {
// handle the eventual error
panic(err)
}
UpdatedAtResponse response = client.setSettings(
"INDEX_NAME",
new IndexSettings().setAttributesToSnippet(Arrays.asList("content:80", "description"))
);
const response = await client.setSettings({
indexName: 'theIndexName',
indexSettings: { attributesToSnippet: ['content:80', 'description'] },
});
var response =
client.setSettings(
indexName = "INDEX_NAME",
indexSettings = IndexSettings(attributesToSnippet = listOf("content:80", "description")),
)
$response = $client->setSettings(
'INDEX_NAME',
['attributesToSnippet' => [
'content:80',
'description',
],
],
);
response = client.set_settings(
index_name="INDEX_NAME",
index_settings={
"attributesToSnippet": [
"content:80",
"description",
],
},
)
response = client.set_settings(
"INDEX_NAME",
Algolia::Search::IndexSettings.new(attributes_to_snippet: ["content:80", "description"])
)
val response = Await.result(
client.setSettings(
indexName = "INDEX_NAME",
indexSettings = IndexSettings(
attributesToSnippet = Some(Seq("content:80", "description"))
)
),
Duration(100, "sec")
)
let response = try await client.setSettings(
indexName: "INDEX_NAME",
indexSettings: IndexSettings(attributesToSnippet: ["content:80", "description"])
)
Legacy API clients
Legacy API clients
IndexSettings settings = new IndexSettings()
settings.AttributesToSnippet = new List
{
"content:80",
"description"
};
index.SetSettings(settings);
res, err := index.SetSettings(search.Settings{
AttributesToSnippet: opt.AttributesToSnippet(
"content:80",
"description",
),
})
index.setSettings(
new IndexSettings()
.setAttributesToSnippet(
Arrays.asList(
"content:80",
"description"
)
)
);
index
.setSettings({
attributesToSnippet: ["content:80", "description"],
})
.then(() => {
// done
});
val settings = settings {
attributesToSnippet {
+"content"(80)
+"description"
}
}
index.setSettings(settings)
$index->setSettings([
'attributesToSnippet' => [
'content:80',
'description'
]
]);
index.set_settings({"attributesToSnippet": ["content:80", "description"]})
index.set_settings(
{
attributesToSnippet: [
"content:80",
"description"
]
}
)
client.execute {
setSettings of "myIndex" `with` IndexSettings(
attributesToSnippet = Some(Seq(
"content:80",
"description",
))
)
}
let settings = Settings()
.set(\.attributesToSnippet, to: [
.init(attribute: "content", count: 80),
.init(attribute: "description")
])
index.setSettings(settings) { result in
if case .success(let response) = result {
print("Response: \(response)")
}
}
Snippet all attributes by default
Current API clients
Current API clients
var response = await client.SetSettingsAsync(
"INDEX_NAME",
new IndexSettings { AttributesToSnippet = new List<string> { "*:80" } }
);
final response = await client.setSettings(
indexName: "INDEX_NAME",
indexSettings: IndexSettings(
attributesToSnippet: [
"*:80",
],
),
);
response, err := client.SetSettings(client.NewApiSetSettingsRequest(
"INDEX_NAME",
search.NewEmptyIndexSettings().SetAttributesToSnippet(
[]string{"*:80"})))
if err != nil {
// handle the eventual error
panic(err)
}
UpdatedAtResponse response = client.setSettings("INDEX_NAME", new IndexSettings().setAttributesToSnippet(Arrays.asList("*:80")));
const response = await client.setSettings({
indexName: 'theIndexName',
indexSettings: { attributesToSnippet: ['*:80'] },
});
var response =
client.setSettings(
indexName = "INDEX_NAME",
indexSettings = IndexSettings(attributesToSnippet = listOf("*:80")),
)
$response = $client->setSettings(
'INDEX_NAME',
['attributesToSnippet' => [
'*:80',
],
],
);
response = client.set_settings(
index_name="INDEX_NAME",
index_settings={
"attributesToSnippet": [
"*:80",
],
},
)
response = client.set_settings(
"INDEX_NAME",
Algolia::Search::IndexSettings.new(attributes_to_snippet: ["*:80"])
)
val response = Await.result(
client.setSettings(
indexName = "INDEX_NAME",
indexSettings = IndexSettings(
attributesToSnippet = Some(Seq("*:80"))
)
),
Duration(100, "sec")
)
let response = try await client.setSettings(
indexName: "INDEX_NAME",
indexSettings: IndexSettings(attributesToSnippet: ["*:80"])
)
Legacy API clients
Legacy API clients
IndexSettings settings = new IndexSettings()
settings.AttributesToSnippet = new List
{
"*:80"
};
index.SetSettings(settings);
res, err := index.SetSettings(search.Settings{
AttributesToSnippet: opt.AttributesToSnippet(
"*:80",
),
})
index.setSettings(
new IndexSettings()
.setAttributesToSnippet(
Arrays.asList(
"*:80"
)
)
);
index
.setSettings({
attributesToSnippet: ["*:80"],
})
.then(() => {
// done
});
val settings = settings {
attributesToSnippet {
+"*"(80)
}
}
index.setSettings(settings)
$index->setSettings([
'attributesToSnippet' => [
"*:80"
]
]);
index.set_settings({"attributesToSnippet": ["*:80"]})
index.set_settings(
{
attributesToSnippet: [
"*:80"
]
}
)
client.execute {
setSettings of "myIndex" `with` IndexSettings(
attributesToSnippet = Some(Seq(
"*:80"
))
)
}
let settings = Settings()
.set(\.attributesToSnippet, to: [
.init(attribute: "*", count: 80)
])
index.setSettings(settings) { result in
if case .success(let response) = result {
print("Response: \(response)")
}
}
Override default attributes to snippet for the current search
Current API clients
Current API clients
var response = await client.SearchSingleIndexAsync<Hit>(
"INDEX_NAME",
new SearchParams(
new SearchParamsObject
{
Query = "query",
AttributesToSnippet = new List<string> { "title", "content:80" },
}
)
);
final response = await client.searchSingleIndex(
indexName: "INDEX_NAME",
searchParams: SearchParamsObject(
query: "query",
attributesToSnippet: [
"title",
"content:80",
],
),
);
response, err := client.SearchSingleIndex(client.NewApiSearchSingleIndexRequest(
"INDEX_NAME").WithSearchParams(search.SearchParamsObjectAsSearchParams(
search.NewEmptySearchParamsObject().SetQuery("query").SetAttributesToSnippet(
[]string{"title", "content:80"}))))
if err != nil {
// handle the eventual error
panic(err)
}
SearchResponse response = client.searchSingleIndex(
"INDEX_NAME",
new SearchParamsObject().setQuery("query").setAttributesToSnippet(Arrays.asList("title", "content:80")),
Hit.class
);
const response = await client.searchSingleIndex({
indexName: 'indexName',
searchParams: { query: 'query', attributesToSnippet: ['title', 'content:80'] },
});
var response =
client.searchSingleIndex(
indexName = "INDEX_NAME",
searchParams =
SearchParamsObject(query = "query", attributesToSnippet = listOf("title", "content:80")),
)
$response = $client->searchSingleIndex(
'INDEX_NAME',
['query' => 'query',
'attributesToSnippet' => [
'title',
'content:80',
],
],
);
response = client.search_single_index(
index_name="INDEX_NAME",
search_params={
"query": "query",
"attributesToSnippet": [
"title",
"content:80",
],
},
)
response = client.search_single_index(
"INDEX_NAME",
Algolia::Search::SearchParamsObject.new(query: "query", attributes_to_snippet: ["title", "content:80"])
)
val response = Await.result(
client.searchSingleIndex(
indexName = "INDEX_NAME",
searchParams = Some(
SearchParamsObject(
query = Some("query"),
attributesToSnippet = Some(Seq("title", "content:80"))
)
)
),
Duration(100, "sec")
)
let response: SearchResponse<Hit> = try await client.searchSingleIndex(
indexName: "INDEX_NAME",
searchParams: SearchSearchParams.searchSearchParamsObject(SearchSearchParamsObject(
query: "query",
attributesToSnippet: ["title", "content:80"]
))
)
Legacy API clients
Legacy API clients
index.Search(new Query("query")
{
AttributesToSnippet = new List { "title", "content:80" }
});
res, err := index.Search(
"query",
opt.AttributesToSnippet("title", "content:80"),
)
index.search(
new Query("query")
.setAttributesToSnippet(
Arrays.asList(
"title",
"content:80"
)
)
);
index
.search("query", {
attributesToSnippet: ["title", "content:80"],
})
.then(({ hits }) => {
console.log(hits);
});
val query = query("query") {
attributesToSnippet {
+"title"
+"content"(80)
}
}
index.search(query)
$results = $index->search('query', [
'attributesToSnippet' => [
"title",
"content:80"
]
]);
results = index.search("query", {"attributesToSnippet": ["title", "content:80"]})
results = index.search(
"query",
{
attributesToSnippet: [
"title",
"content:80"
]
}
)
client.execute {
search into "myIndex" query Query(
query = Some("query"),
attributesToSnippet = Some(Seq(
"title",
"content:80"
))
)
}
let query = Query("query")
.set(\.attributesToSnippet, to: [
.init(attribute: "title"),
.init(attribute: "content", count: 80)
])
index.search(query: query) { result in
if case .success(let response) = result {
print("Response: \(response)")
}
}