带有布尔字段的 Azure 认知搜索
Azure Cognitive Search with boolean field
我使用 Azure 认知搜索来基本上为我托管 Lucene 搜索,并且我使用 C# 界面来处理大多数事情。
我正在编制索引的文档有几个布尔字段。使用“完整”搜索语法,您可以使用语法 MyField:"value"
或 `MyField:("value1", "value2").
搜索单个字段
但我想不通的是如何在布尔字段上进行搜索。例如:MyBooleanField:"True"
不起作用,MyBooleanField:"true"
.
也不起作用
我的错误是:Illegal arguments in query request: MyBooleanField is not a searchable field
class的定义是这样的:
public class MyDocument
{
[SimpleField(IsFilterable = true, IsSortable = true, IsFacetable = true)]
public bool MyBooleanField { get; set; }
}
你们有想过这个吗?
布尔字段不可全文搜索。您可以使用过滤器来匹配它们:
GET /indexes('myindex')/docs?$filter=MyBooleanField eq true&api-version=2020-06-30
使用 .NET SDK,您可以设置 Filter property on SearchOptions
to an OData filter expression,在本例中为 "MyBooleanField eq true"
。
布尔字段不可搜索,因此您不能在搜索表达式中引用它们。
相反,您应该使用 filtering 来缩小搜索结果的范围。在您的情况下,语法为:
$filter=MyBooleanField eq true
这个 link 还有一些额外的细节和有用的例子:
OData $filter syntax in Azure Cognitive Search
我使用 Azure 认知搜索来基本上为我托管 Lucene 搜索,并且我使用 C# 界面来处理大多数事情。
我正在编制索引的文档有几个布尔字段。使用“完整”搜索语法,您可以使用语法 MyField:"value"
或 `MyField:("value1", "value2").
但我想不通的是如何在布尔字段上进行搜索。例如:MyBooleanField:"True"
不起作用,MyBooleanField:"true"
.
我的错误是:Illegal arguments in query request: MyBooleanField is not a searchable field
class的定义是这样的:
public class MyDocument
{
[SimpleField(IsFilterable = true, IsSortable = true, IsFacetable = true)]
public bool MyBooleanField { get; set; }
}
你们有想过这个吗?
布尔字段不可全文搜索。您可以使用过滤器来匹配它们:
GET /indexes('myindex')/docs?$filter=MyBooleanField eq true&api-version=2020-06-30
使用 .NET SDK,您可以设置 Filter property on SearchOptions
to an OData filter expression,在本例中为 "MyBooleanField eq true"
。
布尔字段不可搜索,因此您不能在搜索表达式中引用它们。
相反,您应该使用 filtering 来缩小搜索结果的范围。在您的情况下,语法为:
$filter=MyBooleanField eq true
这个 link 还有一些额外的细节和有用的例子: OData $filter syntax in Azure Cognitive Search