假设我的查询是字符串" X Y",其中X和Y是单词,我的数据库包含字符串:
GET _search
{
"query" : {
"bool" : {
"must": [
{
"query_string": {
"query": "Foo bar"
}
}
],
"filter": [],
"should": [
{
"match": {
"name": {
"query":"Foo bar",
"boost": 2
}
}
},
{
"match_phrase": {
"name": {
"query": "Foo bar",
"boost": 5
}
}
}
]
}
}
}
我如何确保" X Y"总是以最高分返回?我想回来" X Y"因为它完全匹配(没有多余的单词)。
查看文档后,我尝试使用match_phrase关键字,但我相信这只能帮助匹配查询中的单词。所以match_phrase确保" X Y A"返回但是" X A Y" ISN'吨。它没有解决返回最精确匹配的问题。
当前的实施(不起作用),在这里我试图返回名称为" Foo bar"作为最佳结果:
@XmlRootElement
public class IngresarOrden extends DatosOferta {
private String accion;
private ModoEjecucion ejecucion;
private String operador;
@XmlAttribute
public String getAccion() {
return accion;
}
public void setAccion(String accion) {
this.accion = accion;
}
@XmlAttribute
public ModoEjecucion getEjecucion() {
return ejecucion;
}
public void setEjecucion(ModoEjecucion ejecucion) {
this.ejecucion = ejecucion;
}
@XmlAttribute
public String getOperador() {
return operador;
}
public void setOperador(String operador) {
this.operador = operador;
}
答案 0 :(得分:0)
我意识到你可以使用" term"来实现所期望的行为。关键字。