You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: powerapps-docs/developer/data-platform/search/custom-search-analyzer.md
+10-6Lines changed: 10 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ Dataverse search is built on top of the [Azure AI Search analyzers](/azure/searc
39
39
40
40
### Built-in analyzers
41
41
42
-
By default, Dataverse Search uses the [Apache Lucene Standard analyzer (standard lucene)](https://lucene.apache.org/core/6_6_1/core/org/apache/lucene/analysis/standard/StandardAnalyzer.html) analyzer, which breaks text into elements following [Unicode Text Segmentation](https://unicode.org/reports/tr29/) rules. This default analyzer converts all characters to their lower case form. Both indexed documents and search terms go through the analysis during indexing and query processing.
42
+
By default, Dataverse Search uses the [Microsoft language analyzer](/azure/search/index-add-language-analyzers?branch=main#supported-language-analyzers) based on the Dataverse organization's base language. If there's no Microsoft analyzer, Dataverse search uses the Lucene Analyzer. Both indexed documents and search terms go through the analysis during indexing and query processing.
43
43
44
44
In Dataverse Search, an analyzer is automatically invoked on all string or memo [columns marked as searchable](/power-platform/admin/configure-relevance-search-organization#select-searchable-fields-and-filters-for-each-table). You can't apply analyzers for any other type of column.
45
45
@@ -72,7 +72,7 @@ Follow these steps to open the [SearchAttributeSettings table](../reference/enti
72
72
1. Make sure when the table opens the **Name**, **attributename**, **entityname** and **settings** columns are visible. You can add them by selecting "**+18 more**" next to the **Name** column.
73
73
1. After selecting the columns, select **Save**.
74
74
75
-
This closes the dialog and the columns are visible on the page. After saving, the columns should be visible.
75
+
This closes the dialog and the columns are visible on the page. After you save, the columns should be visible.
76
76
77
77
For more information, see [Table columns and data](../../../maker/data-platform/create-edit-entities-portal.md#table-columns-and-data)
78
78
@@ -88,13 +88,15 @@ The following table describes what to add to each column:
88
88
89
89
|Name |What to add|
90
90
|---------|---------|
91
-
|**Name**|The name can be anything that helps you identify the custom analyzer you have added.|
91
+
|**Name**|The name can be anything that helps you identify the custom analyzer you added.|
92
92
|**entityname**|The logical name of the table that has the column you're configuring.|
93
93
|**attributename**|The logical name of column of the table you want the analyzer used for your search terms or phrases.|
94
-
|**settings**|The JSON string that identifies your custom analyzer. The value might look something like this: `{ "analyzer": "name_analyzer"}{"indexanalyzer": "name_analyzer", "searchanalyzer": "name_analyzer"}`|
94
+
|**settings**|The JSON string that identifies your custom analyzer. You should set only the `analyzer`, or the `indexanalyzer` and `searchanalyzer`. The values might look something like these: `{ "analyzer": "name_analyzer"}` or `{"indexanalyzer": "name_analyzer", "searchanalyzer": "name_analyzer"}`|
95
95
96
96
97
-
A new index of the table referenced by the `entityname` column starts when a new row is added, or the `settings` column of an existing row is updated. The search engine needs this to use the analyzer for the column defined by the new setting.
97
+
98
+
Changes made to the `SearchAttributeSettings` might take up to 15 minutes or more to appear in the search service. You can use the [Status message](statistics-status.md#status) to check the `EntityStatusInfo.lastdatasynctimestamp` value for the table to determine when the last sync completed.
99
+
98
100
99
101
### Edit SearchAttributeSettings table columns with code
100
102
@@ -440,6 +442,8 @@ After creating a custom search analyzer, you must enable it for Dataverse search
440
442
> The [SearchCustomAnalyzer table](../reference/entities/searchcustomanalyzer.md) must contain no more than one row of data. By default it has no data. If more than one row is added, people using Dataverse search will get errors.
441
443
>
442
444
> You can't upload a custom analyzer using [Power Apps](https://make.powerapps.com), you need to use code to upload the file containing the custom analyzer.
445
+
>
446
+
> You can't remove or edit existing `tokenizers`, `tokenFilters`, `charFilters`, and `analyzers` after they have been uploaded to the `SearchCustomAnalyzer` table `analyzers` file column. Each items is added when it is created by uploading the file to the `analyzers` file column the first time. If you need to modify the item, you must redefine it with a different name, and upload the file again. If you redefine an item, we recommend you keep the original definition in the JSON file so you know that name is used already, and can't be used again.
443
447
444
448
445
449
## Set the custom analyzer definition
@@ -449,7 +453,7 @@ Setting the [SearchCustomAnalyzer table](../reference/entities/searchcustomanaly
449
453
1. Create the row and set the [Name column](../reference/entities/searchcustomanalyzer.md#BKMK_name).
450
454
2. Upload the file with the analyzer into the [analyzers column](../reference/entities/searchcustomanalyzer.md#BKMK_analyzers)
451
455
452
-
If a row already exists, you can also just the .json file set in the `analyzers` column without creating a new row.
456
+
If a row already exists, you can just update the .json file set in the `analyzers` column without creating a new row.
453
457
454
458
The following example code includes logic to ensure that no more than one row exists in the `searchcustomanalyzer` table, and that any existing row isn't overwritten accidentally.
0 commit comments