我对在 ElasticSearch 中返回错误结果的位置查询有疑问。
在我们的系统中,一个商业搜索引擎,每次搜索都需要两个输入:一个位置和一个查询字符串,例如
q=sushi
location=Greenwich Village, New York, New York
我希望搜索首先显示格林威治村的寿司,然后显示格林威治村外的寿司,但绝不会显示非寿司结果。
问题是,由于location
查询,格林威治村的任何事物都得到了匹配——律师、医生等等。我想对 ElasticSearch 说以下内容:
如果 q 匹配,则 location 不必(返回格林威治村外的寿司是可以的),但如果位置匹配,除非 q 也匹配,否则不要返回它(返回格林威治村的非寿司企业是不行的) .
有人对如何做到这一点有任何想法吗?