我正在使用以下查询对象执行多匹配搜索,并使用script_score
:
{
_source: [
'baseline',
'cpcr',
'date',
'description',
'dev_status',
'element',
'event',
'id'
],
track_total_hits: true,
query: {
script_score: {
query: {
bool: {
filter: []
},
},
script: {
source: "def v=doc['description'].value; def score = 10000; score += v.length(); score -= " + "\"" + searchObject.query + "\"" + ".indexOf(v)*50;", // throws error
params: { highlights: 3 }
}
}
},
highlight: { fields: { '*': {} } },
sort: [],
from: 0,
size: 50
}
我希望结果按高亮匹配的数量排序。例如,第一张唱片有5张。
elasticsearch.config.ts
"settings": {
"analysis": {
"analyzer": {
"search_synonyms": {
"tokenizer": "whitespace",
"filter": [
"graph_synonyms",
"lowercase",
"asciifolding"
],
}
}
}
},
"mappings": {
"properties": {
"description": {
"type": "text",
"analyzer": "search_synonyms"
},
"narrative": {
"type":"object",
"properties":{
"_all":{
"type": "text",
"analyzer": "search_synonyms"
}
}
},
}
}
示例数据
我认为这是不可能的。
仔细想想,既然您使用的是multi_match
,那么字段匹配最多的文档可能得分最高,这增加了它们也拥有最多的机会。
这是不可能的,因为高亮机制在
sort
API之外工作,一个无法到达另一个。人们总是可以用一些花哨的脚本“破解”它,但没有简单的方法。
附录
查看此相关答案以访问脚本中的多个字段:https://stackoverflow.com/a/61620705/8160318
我和ElasticSearch一起工作。当我执行此查询时: 我得到了我想要的(所有的结果,其中有参考黑莓,但不是Q10)。 但是,我想限制搜索的字段只限于“title”字段。例如,_source文档有标题、正文、标签等,我只想搜索标题。ElasticSearch“匹配”似乎很适合我... 虽然这只成功地搜索了标题,但它仍然返回标题中带有Q10的结果,这与上面的搜索不同。 我正在看比赛文档,但似乎不
摘要:ZUUL没有为输入路径选择正确的目标url,因为它没有严格匹配输入路径。 以下是我的zuul路线: 对于输入路径:"/v1/顾客/卡片/产品/",它应该选择-http://localhost:8800/v1/customer/card/product但它选择http://localhost:8400/v1/composite.我的期望是路径模式匹配按照指定的顺序发生,并且更严格,但似乎不是这
由于我是一个新手,并不知道如何匹配这样的东西,我希望有人能帮助我。提前道谢。 编辑1: 我使用了一个节点匹配器,它是我的一个同事创建的,如下所示: 现在我有了一个非常酷的PactDslWithProvider,如下所示: 方法“minmaxType”将一个MinMaxTypeMatcher添加到带有节点路径的body-category中。的实际行为:它匹配的最内部节点的type、min和max。例
我想同时执行精确的单词匹配和部分单词/子字符串匹配。例如,如果我搜索“test product”,那么我应该能够在结果中找到“test”和“product”相关的文本。我用下面的match查询搜索弹性搜索,它不是给我精确的匹配,而是给我一些更多的不确定的匹配。示例是在结果中给出与“sample”相关的文本。 我使用弹性搜索6.3 请在下面找到我的查询 搜索结果:“Hits”:[{“_index”:
我在ES中有一个多匹配查询,希望添加一个过滤器。 添加此筛选器的语法是什么? 我试过:
问题内容: 我正在使用Elasticsearch,但有一段时间魔鬼般地要进行精确匹配。我已经尝试过match,query_string等的各种组合,但是我什么也没得到,或者得到了不好的结果。查询看起来像这样: 排序结果 我当然知道“狗”,“那只狗”和“狗”的得分相同,但是我需要弄清楚如何提高得分“狗”的精确匹配度。 我也试过 但这仍然给我 问题答案: 默认情况下,使用标准分析仪分析字段。如果您想检