elasticsearch 我是ES的新成员,在ES中有多个匹配查询,并且希望根据其可用性考虑字段。 有一个字段,即代码> EddieToDebug < /C>,如果在文档中>代码> EddiDeX描述存在于文档中,则考虑 EddieTyDebug .ReGeXType ^ 1 否则考虑描述,即描述.ReGeXType ^ 1 .< /P> 不能定义多匹配查询中的IF条件。但你能做的是用另一种方式重新审视你的问题陈述。我可以将其重新视为,如果edited\u description和description都存在,那么edited\u description字段中的匹配项应该被赋予更高的优先级
这可以通过为elasticsearch 我是ES的新成员,在ES中有多个匹配查询,并且希望根据其可用性考虑字段。 有一个字段,即代码> EddieToDebug < /C>,如果在文档中>代码> EddiDeX描述存在于文档中,则考虑 EddieTyDebug .ReGeXType ^ 1 否则考虑描述,即描述.ReGeXType ^ 1 .< /P> 不能定义多匹配查询中的IF条件。但你能做的是用另一种方式重新审视你的问题陈述。我可以将其重新视为,如果edited\u description和description都存在,那么edited\u description字段中的匹配项应该被赋予更高的优先级,elasticsearch,elasticsearch,这可以通过为edited_description字段设置稍高的增压值来实现 { "multi_match": { "query": "TEST", "fields": [ "description.regexkeyword^1.0", "logical_name.regexkeyword^1.0", "logical_table_name.regexkeyword^1.0", "physical_na
edited_description
字段设置稍高的增压值来实现
{
"multi_match": {
"query": "TEST",
"fields": [
"description.regexkeyword^1.0",
"logical_name.regexkeyword^1.0",
"logical_table_name.regexkeyword^1.0",
"physical_name.regexkeyword^1.0",
"presentation_name.regexkeyword^1.0",
"table_name.regexkeyword^1.0"
],
"type": "best_fields",
"operator": "AND",
"slop": 0,
"prefix_length": 0,
"max_expansions": 50,
"lenient": false,
"zero_terms_query": "NONE",
"boost": 1
}
}
这将导致在
edited_description
中匹配的文档排名更高。您可以根据需要调整提升值。您不能在多匹配查询中定义if条件。但你能做的是用另一种方式重新审视你的问题陈述。我可以将其重新视为,如果edited\u description
和description
都存在,那么edited\u description
字段中的匹配项应该被赋予更高的优先级
这可以通过为edited_description
字段设置稍高的增压值来实现
{
"multi_match": {
"query": "TEST",
"fields": [
"description.regexkeyword^1.0",
"logical_name.regexkeyword^1.0",
"logical_table_name.regexkeyword^1.0",
"physical_name.regexkeyword^1.0",
"presentation_name.regexkeyword^1.0",
"table_name.regexkeyword^1.0"
],
"type": "best_fields",
"operator": "AND",
"slop": 0,
"prefix_length": 0,
"max_expansions": 50,
"lenient": false,
"zero_terms_query": "NONE",
"boost": 1
}
}
这将导致在
edited_description
中匹配的文档排名更高。您可以根据需要调整提升值。谢谢@Opster ES Ninja Nishant,假设我正在基于文本“abc”进行搜索,字段编辑的描述和描述都可用,但编辑的描述值为“xyz”,描述值为“abc”,在这种情况下,文档不应出现在结果中。我们如何才能做到这一点,因为描述字段对我来说已经过时了。我必须考虑在EddieTyDead中总是有搜索,如果它是可用的,我觉得在索引时间可以更好地处理。每当您将值索引到编辑的\u描述
索引空
到描述
字段时。这将始终导致一个字段中的匹配,即,如果文档已更新,则在编辑的\u描述
中匹配;如果文档未使用编辑的\u描述
更新,则在描述
中匹配。描述字段类似于字段的首次输入值,编辑的\u描述是对字段的后续更改。所以我不能将description字段设为null,因为我还必须跟踪输入的第一个值。还有其他方法可以实现吗?谢谢@Opster ES Ninja Nishant,假设我正在基于文本“abc”进行搜索,字段编辑的描述和描述都可用,但编辑的描述值为“xyz”,描述值为“abc”,在这种情况下,文档不应出现在结果中。我们如何才能做到这一点,因为描述字段对我来说已经过时了。我必须考虑在EddieTyDead中总是有搜索,如果它是可用的,我觉得在索引时间可以更好地处理。每当您将值索引到编辑的\u描述
索引空
到描述
字段时。这将始终导致一个字段中的匹配,即,如果文档已更新,则在编辑的\u描述
中匹配;如果文档未使用编辑的\u描述
更新,则在描述
中匹配。描述字段类似于字段的首次输入值,编辑的\u描述是对字段的后续更改。所以我不能将description字段设为null,因为我还必须跟踪输入的第一个值。我还有别的办法吗。