我有三明治的搜索索引。该索引有三个字段:id,meat和bread。每个字段都是一个Edm.String。在此索引中,这是我的数据的子集:
ID | Meat | Bread
-----------------------
1 | Ham | White
2 | Turkey | Hoagie
3 | Tuna | Wheat
4 | Roast Beef | White
5 | Ham | Wheat
6 | Roast Beef | Rye
7 | Turkey | Wheat
我需要写一个返回小麦面包上所有火腿或火鸡三明治的查询。为了做到这一点,我创建了以下内容:
{
"search":"(meat:(Ham|Turkey) AND bread:\"Wheat\")",
"searchMode":"all",
"select":"id,meat,bread"
}
当我运行此查询时,我没有看到任何结果。我错过了什么?我究竟做错了什么?我试图了解完整的查询。字段级查询是否支持短语运算符?我不确定我做错了什么。
答案 0 :(得分:2)
您需要使用“queryType”:“full”来请求Lucene语法。请参阅example on MSDN。
尽管如此,使用过滤器可以更轻松,更有效地完成您要完成的任务。假设您将索引中的相关字段设置为可过滤,则可以使用以下过滤器表达式作为示例:$ filter =(meat eq'Ham'或meat eq'Turkey')和bread eq'Wheat'。有关过滤器的更多信息,请参阅this article。希望这可以帮助!