Я пытаюсь найти все записи, содержащие символ &
, который зарезервирован. Я использую search
, а не $filter
.
Согласно документации, его нельзя экранировать с помощью \%
, и его следует экранировать как часть URL-адреса HTML в %26
.
Попытка SDK и Search Explorer найти какие-либо варианты поиска, но безуспешно:
&
*&*
*%26*
%26
\%26
UPD
Пример документа:
{
"test": "Hello & World"
Поисковый запрос: search=%26&searchFields=test&$select=test
UPD 2
public class MyType
{
[System.ComponentModel.DataAnnotations.Key]
[IsFilterable]
public string Id { get; set; }
[IsSearchable, IsSortable]
public string Test { get; set; }
}
class Program
{
private static SearchServiceClient CreateSearchServiceClient()
{
string searchServiceName = "XXXXXX";
string adminApiKey = "XXXXXXX";
var serviceClient = new SearchServiceClient(searchServiceName, new SearchCredentials(adminApiKey));
return serviceClient;
}
static void Main(string[] args)
{
var client = CreateSearchServiceClient();
var def = new Microsoft.Azure.Search.Models.Index
{
Name = "temp-test-reserved1",
Fields = FieldBuilder.BuildForType<MyType>()
};
client.Indexes.Create(def);
var c = client.Indexes.GetClient("temp-test-reserved1");
var actions = new IndexAction<MyType>[]
{
IndexAction.Upload(new MyType{ Id = "1", Test = "Hello & World" }),
IndexAction.Upload(new MyType{ Id = "2", Test = "& test start" }),
IndexAction.Upload(new MyType{ Id = "3", Test = "test end &" })
};
c.Documents.Index(IndexBatch.New(actions));
}
}
search=%26&searchFields=Test&$select=Test
%26
(как указано в вашем списке), а не%24
(как указано в предложении выше) - person Arvind - MSFT   schedule 21.11.2019