Skip to content

Commit 9d4a85c

Browse files
committed
Facet updates per Dina, plus max limit in semantic config
1 parent 362968c commit 9d4a85c

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

articles/search/search-faceted-navigation-examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ author: HeidiSteen
99
ms.author: heidist
1010
ms.service: azure-ai-search
1111
ms.topic: how-to
12-
ms.date: 03/31/2025
12+
ms.date: 04/04/2025
1313
---
1414

1515
# Faceted navigation examples

articles/search/search-faceted-navigation.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ author: HeidiSteen
88
ms.author: heidist
99
ms.service: azure-ai-search
1010
ms.topic: how-to
11-
ms.date: 03/31/2025
11+
ms.date: 04/04/2025
1212
---
1313

1414
# Add faceted navigation to search results
@@ -27,7 +27,7 @@ More facet capabilities are available through preview APIs:
2727

2828
## Faceted navigation in a search page
2929

30-
Facets are dynamic and returned on a query. A search response brings with it all of the facet buckets used to navigate the documents in the result. The query executes first, and then facets are pulled from the current results and assembled into a faceted navigation structure.
30+
Facets are dynamic because they're based on each specific query result set. A search response brings with it all of the facet buckets used to navigate the documents in the result. The query executes first, and then facets are pulled from the current results and assembled into a faceted navigation structure.
3131

3232
In Azure AI Search, facets are one layer deep and can't be hierarchical unless you use the preview API. If you aren't familiar with faceted navigation structures, the following example shows one on the left. Counts indicate the number of matches for each facet. The same document can be represented in multiple facets.
3333

@@ -37,9 +37,9 @@ Facets can help you find what you're looking for, while ensuring that you don't
3737

3838
## Faceted navigation in code
3939

40-
Facets are enabled on supported fields in an index, and then specified on a query. At query time, a dynamic faceted navigation structure is returned at the top of the response.
40+
Facets are enabled on supported fields in an index, and then specified on a query. The faceted navigation structure is returned at the beginning of the response, followed by the results.
4141

42-
The following REST example is an unqualified query (`"search": "*"`) that is scoped to the entire index (see the [built-in hotels sample](search-get-started-portal.md)). It returns a faceted navigation structure for the "Category" field.
42+
The following REST example is an empty query (`"search": "*"`) that is scoped to the entire index (see the [built-in hotels sample](search-get-started-portal.md)). The `facets` parameter specifies the "Category" field.
4343

4444
```http
4545
POST https://{{service_name}}.search.windows.net/indexes/hotels/docs/search?api-version={{api_version}}
@@ -55,7 +55,7 @@ POST https://{{service_name}}.search.windows.net/indexes/hotels/docs/search?api-
5555
}
5656
```
5757

58-
The response for the example includes the faceted navigation structure at the top. The structure consists of "Category" values and a count of the hotels for each one. It's followed by the rest of the search results, trimmed here to just one document for brevity. This example works well for several reasons. The number of facets for this field fall under the limit (default is 10) so all of them appear, and every hotel in the index of 50 hotels is represented in exactly one of these categories.
58+
The response for the example starts with the faceted navigation structure. The structure consists of "Category" values and a count of the hotels for each one. It's followed by the rest of the search results, trimmed here to just one document for brevity. This example works well for several reasons. The number of facets for this field fall under the limit (default is 10) so all of them appear, and every hotel in the index of 50 hotels is represented in exactly one of these categories.
5959

6060
```json
6161
{
@@ -102,7 +102,8 @@ The response for the example includes the faceted navigation structure at the to
102102
"concierge"
103103
],
104104
"ParkingIncluded": false,
105-
}
105+
},
106+
. . .
106107
]
107108
}
108109
```
@@ -121,7 +122,9 @@ Facets can be calculated over single-value fields and collections. Fields that w
121122
* Low cardinality (a few distinct values that repeat throughout documents in your search corpus).
122123
* Short descriptive values (one or two words) that render nicely in a navigation tree.
123124

124-
The values within a field, and not the field name itself, produce the facets in a faceted navigation structure. If the facet is a string field named *Color*, facets are blue, green, and any other value for that field. As a best practice, review field values to ensure there are no typos, nulls, or casing differences. Consider [assigning a normalizer](search-normalizers.md) to a filterable and facetable field to smooth out minor variations in the text. For example, "Canada", "CANADA", and "canada" would all be normalized to one bucket.
125+
The values within a field, and not the field name itself, produce the facets in a faceted navigation structure. If the facet is a string field named *Color*, facets are blue, green, and any other value for that field. Review field values to ensure there are no typos, nulls, or casing differences. Consider [assigning a normalizer](search-normalizers.md) to a filterable and facetable field to smooth out minor variations in the text. For example, "Canada", "CANADA", and "canada" would all be normalized to one bucket.
126+
127+
### Avoid unsupported fields
125128

126129
You can't set facets on existing fields, on vector fields, or fields of type `Edm.GeographyPoint` or `Collection(Edm.GeographyPoint)`.
127130

@@ -248,7 +251,11 @@ Remember that you can't use `Edm.GeographyPoint` or `Collection(Edm.GeographyPoi
248251

249252
### Check for bad data
250253

251-
As you prepare data for indexing, check fields for null values, misspellings or case discrepancies, and single and plural versions of the same word. By default, filters and facets don't undergo lexical analysis or [spell check](speller-how-to-add.md), which means that all values of a "facetable" field are potential facets, even if the words differ by one character. Optionally, you can [assign a normalizer](search-normalizers.md) to a "filterable" and "facetable" field to smooth out variations in casing and characters.
254+
As you prepare data for indexing, check fields for null values, misspellings or case discrepancies, and single and plural versions of the same word. By default, filters and facets don't undergo lexical analysis or [spell check](speller-how-to-add.md), which means that all values of a "facetable" field are potential facets, even if the words differ by one character.
255+
256+
[Normalizers](search-normalizers.md) can mitigate data discrepancies, correcting for casing and character differences. Otherwise, to inspect your data, you can check fields at their source, or run queries that return values from the index.
257+
258+
An index isn't the best place to fix nulls or invalid values. You should fix data problems in your source, assuming it's a database or persistent storage, or in a data cleansing step that you perform prior to indexing.
252259

253260
### Ordering facet buckets
254261

articles/search/semantic-how-to-configure.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: azure-ai-search
99
ms.custom:
1010
- ignite-2023
1111
ms.topic: how-to
12-
ms.date: 03/31/2025
12+
ms.date: 04/04/2025
1313
---
1414

1515
# Configure semantic ranker and return captions in search results
@@ -44,6 +44,8 @@ You can specify a semantic configuration on new or existing indexes, using any o
4444

4545
A *semantic configuration* is a section in your index that establishes field inputs for semantic ranking. You can add or update a semantic configuration at any time, no rebuild necessary. If you create multiple configurations, you can specify a default. At query time, specify a semantic configuration on a [query request](semantic-how-to-query-request.md), or leave it blank to use the default.
4646

47+
You can create up to 100 semantic configurations in a single index.
48+
4749
A semantic configuration has a name and the following properties:
4850

4951
| Property | Characteristics |

0 commit comments

Comments
 (0)