我在ElasticSearch中遇到位置查询返回错误结果的问题。
在我们的系统中,一个商业搜索引擎,每个搜索都有两个输入:一个位置和一个查询字符串,例如
q=sushi
location=Greenwich Village, New York, New York
我希望搜索结果首先显示格林威治村的寿司,然后显示格林威治村以外的寿司,但永远不会显示非寿司的结果。
问题是,由于location查询,格林威治村的任何东西都可以匹配--律师、医生等等。我想对ElasticSearch说以下几点:
如果Q匹配,则位置不需要(可以在格林威治村以外退回寿司),但如果位置匹配,则不要退货,除非Q也匹配(不可以
我想要显示度假村id,度假村名称,每个度假村的预订数量,以及每个度假村的总收款。为此,我有如下的一段代码; select r.resortid, r.resortname, count(b.bookingid) as totalbooking, sum(b.totalcharge) as totalamount
from resort r inner join booking b
on r.resortid = b.resortid
group by b.resortid
order by b.resortid; 但是这段代码给出了一个错误,声明"Not a group
我编写了这个sql查询以在表中搜索:
SELECT * FROM TableName WHERE Name LIKE '%spa%'
该表包含这些行,例如:
航天公司。温泉度假村。水疗中心。备件。WithoutTheKeyword.
我想知道如何编辑这个查询,以便它返回排序如下的结果:
2水疗度假村
3水疗中心
1航天公司
4个备件
意思是先包含准确单词的项目,然后是类似的项目。