在嵌套 json 中搜索(Azure 搜索)
Search in nested json (Azure Search)
我有 JSON 的 CosmosDB (documentDB),看起来像这样:
{
"id": "59082f71-def1-47cc-j6w2-3fd8c0831e9c",
"name": "Bilbo",
"address":
{
"street": "bla-bla-bla",
"city": "London",
"country": "Great Britain"
}
}
但是当我尝试使用 Azure 搜索时,我似乎无法将 Edm.ComplexType 用作 it is not supported
而且我不能使用 Collection(Edm.String) 因为我有多个字段。
以下是我尝试获取字段的方式:
SELECT c._rid, c.id, c.name, c.address.street as street, c.address.city as city, c.address.country as country FROM c WHERE c._ts >= @HighWaterMark ORDER BY c._ts
您使用的 SELECT 查询看起来不错。如果您通过 Azure 门户(而不是通过 REST API)定义了 Azure 搜索的 data-source\indexer,您可能遇到了一个已知问题,即数据源查询被忽略——我们目前正在努力解决该问题.
同时,这里有一个解决方法:
- 确保您的数据源查询确实被忽略了:在 Azure 门户中,转到搜索服务的“概述”页面,单击“数据源”选项卡,然后select 您的数据源。
在数据源页面中,select“编辑”- 您是否在“查询”文本框中看到正确的 SELECT 查询?如果您的查询不正确,请单击“确定”
- 确保您的索引包含您 wanted\selected(街道、城市和国家/地区)的其他字段: 再次转到“概览”页面,select 您的索引来自“索引”选项卡,然后 select 索引页面中的“字段”选项卡 - 如果缺少某些字段,您可以添加它们并单击“保存”
- 重新运行 或重新创建您的索引器: 您可以重新运行 您现有的索引器,方法是导航回“概述”页面,select从“索引器”选项卡中设置索引器,单击“重置”,然后单击“运行”
或者,您可以删除现有的索引器(和索引,如果您那里没有您需要的任何数据),然后通过单击“概述”页面中的“导入数据”来创建一个新的索引器——这次 select在第一步中输入“现有数据源”。
希望对您有所帮助。
我有 JSON 的 CosmosDB (documentDB),看起来像这样:
{
"id": "59082f71-def1-47cc-j6w2-3fd8c0831e9c",
"name": "Bilbo",
"address":
{
"street": "bla-bla-bla",
"city": "London",
"country": "Great Britain"
}
}
但是当我尝试使用 Azure 搜索时,我似乎无法将 Edm.ComplexType 用作 it is not supported 而且我不能使用 Collection(Edm.String) 因为我有多个字段。
以下是我尝试获取字段的方式:
SELECT c._rid, c.id, c.name, c.address.street as street, c.address.city as city, c.address.country as country FROM c WHERE c._ts >= @HighWaterMark ORDER BY c._ts
您使用的 SELECT 查询看起来不错。如果您通过 Azure 门户(而不是通过 REST API)定义了 Azure 搜索的 data-source\indexer,您可能遇到了一个已知问题,即数据源查询被忽略——我们目前正在努力解决该问题.
同时,这里有一个解决方法:
- 确保您的数据源查询确实被忽略了:在 Azure 门户中,转到搜索服务的“概述”页面,单击“数据源”选项卡,然后select 您的数据源。 在数据源页面中,select“编辑”- 您是否在“查询”文本框中看到正确的 SELECT 查询?如果您的查询不正确,请单击“确定”
- 确保您的索引包含您 wanted\selected(街道、城市和国家/地区)的其他字段: 再次转到“概览”页面,select 您的索引来自“索引”选项卡,然后 select 索引页面中的“字段”选项卡 - 如果缺少某些字段,您可以添加它们并单击“保存”
- 重新运行 或重新创建您的索引器: 您可以重新运行 您现有的索引器,方法是导航回“概述”页面,select从“索引器”选项卡中设置索引器,单击“重置”,然后单击“运行” 或者,您可以删除现有的索引器(和索引,如果您那里没有您需要的任何数据),然后通过单击“概述”页面中的“导入数据”来创建一个新的索引器——这次 select在第一步中输入“现有数据源”。
希望对您有所帮助。