问题标签 [match-phrase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elasticsearch - 如何从 ElasticSearch 记录中聚合匹配的前缀/短语?
我有一个字段“部门”,它是一个列表:{“部门”:[“食品服务”,“软件开发”,“制造”,“部署”] }'
我想聚合以“d”开头的“部门”的元素。即,来自所有记录的部署。
我能够找到具有一个带有前缀“d”的元素但无法聚合它们的记录。相反,我在查询前缀“d”后返回的记录中汇总了“部门”的所有元素。
例如,如果我总共有 4 条记录,其中“部署”出现在 1 条中,那么我想要:
部署:1
但我实际上得到的是该记录中存在“部署”的所有元素的频率。
部署:1,食品:1,服务:1,软件:1,开发:1,制造:1
elasticsearch - Elasticsearch:结合 match_phrase 和 match 以便仅获取 match_phrase 的结果(如果有)
我有一个书籍索引,用于存储书籍的全文内容(删除了停用词,但这对我的问题并不重要)。我有以下查询:
我得到所有具有最高分数的完整字符串的文档的匹配项,然后,分数较低的那些具有一个或多个匹配项:第一个匹配是'Anna Karenina',得分很高,然后是任何有'快乐'的书,'家庭'在里面。我想获得什么:
- 如果文档与条件“match_phrase”匹配,则只得到这个结果(即只得到安娜卡列尼娜,丢弃其余的)
- 否则,列出所有匹配的文档,分数降序(预期行为)
我很难找到如何获得第 1 点。
excel - 如何在个人列表中添加条件语句?
目前我有这个公式将单元格值组合在一起并将它们组合起来以复制并粘贴到文档中。
我想添加一个函数if M2 = "200 AMPS"
,然后将短语添加"INSTALL 1/0 AL TPLX SERVICE"
到输出中。我想添加粗体部分的变体。
elasticsearch - Elasticsearch 匹配多个值并且输出结果应该在相同的数组元素序列中并应用排序
我有一个弹性搜索查询:
并以以下格式输出:
现在我想进行一个查询,其中我将以数组格式传递 unique_chat_session_id 并精确匹配 [1a8905a2-b328-4f57-8ce8-7ba2e43e138e, f6a83c4a-8d2f-4f04-9eff-e753957fe9d2] 我想在与数组相同的方式。它应该显示第一个数组元素(这里是 1a8905a2-b328-4f57-8ce8-7ba2e43e138e)的所有结果,并在 msg_no 上应用了排序。所以我的输出结果应该是:
elasticsearch - Elasticsearch:如何使用运算符 - 和/或短语查询?
假设我有用户输入的以下查询字符串 - “深蓝色鞋子和水洗”
product_description
基本上我想在ORproduct_title
字段中搜索“深蓝色鞋子”和“水洗” 。
“深蓝色鞋子或可水洗”也是如此,因此不要使用“和”运算符,而是使用“或”运算符。
是否可以使用“和/或”运算符向 Elasticsearch 提供多个短语
如果这很重要,我正在使用 v7.1。
elasticsearch - 如何在弹性搜索中使用必须或条件中的多个匹配短语?
如何在弹性搜索中使用必须或条件中的多个匹配短语?
尝试了这个查询....我需要单词在标签中完全匹配或在正文或标题或 answer.body 上部分匹配的结果
但它不起作用。
添加评论
获取 questiondetails_new/question/_search? {“查询”:{“布尔”:{“应该”:[{“match_phrase”:{“tags.keyword”:“azure-data-factory”}},{“match_phrase”:{“title”:“azure -data-factory" } } ], "minimum_should_match": 1, "filter": { "range": { "creation_date": { "gte": 1585170170, "lte": 1585170180 } } }
在此查询中,我需要与 azure-data-factory 完全匹配或在其标题(字符串)中具有 azure-data-factory 的所有文档。它应该是一个或搜索。但它也与值为 azure-data-factory-2 的标签匹配
elasticsearch - 对于 ElasticSearch match_phrase 查询,如何考虑词序但不要求所有搜索词都存在于文档中?
假设我的索引有两个文档:
- “拿我的钱”
- “我的钱到了”
当我对“get my money”进行常规匹配查询时,两个文档都正确匹配,但得分相同。但是,我希望在评分过程中单词的顺序很重要。换句话说,我希望“得到我的钱”有更高的分数。
因此,我尝试将匹配查询放在 bool 查询的 must 子句中,并包含一个 match_phrase(具有相同的查询字符串)。在我用“我如何得到我的钱”进行搜索之前,这似乎正确地得分。在这种情况下,match_phrase 查询似乎不匹配,并且再次以相同的分数返回命中。
如何构建我的索引/查询,以便考虑词序但不要求所有搜索的词都存在于文档中?
与测试数据的索引映射
查询“我如何获得我的钱” - 没有按需要工作
结果(两份文件得分相同)
编辑 1
正如@gibbs 建议的那样,让我们删除"similarity": "boolean"
. 下面介绍了一个更加简化和集中的问题。我们正在努力寻找这个问题的答案。
已移除
"similarity": "boolean"
如何使这个查询返回结果?现在没有了。使用时如果文档中不存在所有搜索词,是否可以返回结果match_phrase
?
编辑 2
在我们的用例中,我们不能使用 BM25 (TF/IDF),因为这会破坏我们的结果。
结果
在这种情况下,由于 TF/IDF,我的钱得到的分数比预期的要高。所以,我们不能让分数计算取决于匹配的文档数量、字段长度等。
对不起,很长的问题。那么,回到我原来的问题,如何构建我的索引/查询,以便考虑词序但不要求所有搜索的词都存在于文档中?
elasticsearch - elasticsearch match_phrase 查询用于精确的子字符串搜索
我使用 match_phrase 查询进行搜索全文匹配。
但它并没有像我想象的那样工作。
询问:
结果:
期待:
映射:
结果不是我所期望的。我希望得到的结果与作为存储文本的子字符串的搜索/critical-illness完全一样。
elasticsearch - Elasticsearch 6.8 match_phrase search N-gram tokenizer 效果不佳
我使用 ElasticsearchN-gram tokenizer
并用于match_phrase
模糊匹配我的索引和测试数据,如下所示:
检查_分析:
_分析结果:
当我搜索“rm”时,什么也没找到:
但是可以找到“.rf”:
我的问题:为什么即使 _analyze 拆分了这些短语也找不到“rm”?
elasticsearch - ElasticSearch - 整个文档的短语匹配?不仅仅是一个特定的领域
有没有办法可以在整个文档上使用弹性 match_phrase?不仅仅是一个特定的领域。
我们希望用户能够输入带引号的搜索词,并在文档中的任何位置进行词组匹配。
目前,我只找到特定字段的短语匹配。我必须指定要在其中进行短语匹配的字段。
我们的文档有数百个字段,因此我认为在每个 match_phrase 查询中手动输入 600 多个字段是不可行的。生成的 JSON 将是巨大的。