- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始使用 Elasticsearch,版本 7.5.1。
我想查询以特定单词片段开头的结果。
例如 寿 * 应返回包含以下内容的数据:
thought, Thomson, those, etc.
[{'regexp':{'f1':'tho.*'}},{'regexp':{'f2':'tho.*'}}]
[{'wildcard':{'f1':'tho*'}},{'wildcard':{'f2':'tho*'}}]
[{'prefix':{'f1':'tho'}},{'prefix':{'f2':'tho'}}]
'multi_match': {'query': 'tho', 'fields':[f1,f2,f3], 'type':phrase}
# also tried with type phrase_prefix
所有这些都返回正确的结果,但它们也都返回 word 方法。
'f1': {
'full_name': 'f1',
'mapping': {
'f1': {
'type': 'text',
'analyzer': 'some_analyzer',
'index_phrases': true
}
}
},
最佳答案
由于您没有提供您的任何索引映射,并且如上所述,您将收到 method
也在搜索结果中。我认为您设置的分析器存在一些问题。
一种可能是您设置了 ngram tokenizer ,对单词进行标记,并生成 tho
的标记(因为所有单词都包含 tho
)
添加包含索引数据、映射、搜索查询和搜索结果的工作示例
索引映射:
{
"mappings": {
"properties": {
"f1": {
"type": "text"
}
}
}
}
索引数据:
{
"f1": "method"
}
{
"f1": "thought"
}
{
"f1": "Thomson"
}
{
"f1": "those"
}
使用通配符查询的搜索查询:
{
"query": {
"wildcard": {
"f1": {
"value": "tho*"
}
}
}
}
使用前缀查询的搜索查询:
{
"query": {
"prefix": {
"f1": {
"value": "tho"
}
}
}
}
使用正则表达式查询的搜索查询:
{
"query": {
"regexp": {
"f1": {
"value": "tho.*"
}
}
}
}
使用匹配短语前缀查询搜索查询:
{
"query": {
"match_phrase_prefix": {
"f1": {
"query": "tho"
}
}
}
}
以上4个查询的搜索结果都是
"hits": [
{
"_index": "67673694",
"_type": "_doc",
"_id": "1",
"_score": 1.2039728,
"_source": {
"f1": "thought"
}
},
{
"_index": "67673694",
"_type": "_doc",
"_id": "2",
"_score": 1.2039728,
"_source": {
"f1": "Thomson"
}
},
{
"_index": "67673694",
"_type": "_doc",
"_id": "3",
"_score": 1.2039728,
"_source": {
"f1": "those"
}
}
]
关于regex - Elasticsearch 通配符、regexp、match_phrase、前缀查询返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67673694/
我正在使用elasticsearch 6并有以下查询 { "query":{ "bool":{ "should":[ { "match_
我确实读过这篇文章post但不太明白如何应用它。 我分析了我的索引,我想知道是否可以搜索没有屈折形式的短语。 es.indices.create(index='bhar',body = { "set
我的文档有一个“描述”字段,包含 3 到 10 个句子。 我必须支持模糊性,因为我不能期望用户使用完全相同的词。 另一方面,我必须使用“match_phrase”而不是“match”,因为如果单词彼此
我正在使用 ElasticSearch,我正在尝试实现 match_phrase/string + fuzziness,但似乎不可能(在线示例不多,文档中没有此类案例)。 我需要的是:短语/字符串匹配
我一直在尝试使用多个过滤器来获取文档。 我目前正在使用ES 1.7,是否可以在过滤器上两次使用match_phrase? 示例:人员文档q=aaron&address=scarborough-通过姓名
匹配短语查询 { "query": { "match_phrase": { "approved_labelled_products.companies": "SOMETHING
我刚刚开始使用 Elasticsearch,版本 7.5.1。 我想查询以特定单词片段开头的结果。 例如 寿 * 应返回包含以下内容的数据: thought, Thomson, those, etc.
我有“设备”类型的文档,我使用以下查询按模型搜索(使用 Flask 和 Elasticsearch 作为 api): match handset query = { "quer
我需要使用match_phrase和模糊匹配的查询。但是我找不到任何文档来构造这样的查询。另外,当我尝试合并查询(一个在另一个)时,它会引发错误。是否可以构造这样的查询? 最佳答案 您将需要使用Spa
更新 : 在阅读了 Richa 的解释和推荐的 blog post 后,该问题似乎已得到解决。 ,但我需要更多测试才能确认。 首先,应按照 Richa 的建议更改同义词格式: [“绿色 => 卡其色,
给定一个像这样的短语匹配查询: { 'match_phrase': { 'text.english': { 'query': "The fox jump
我必须在多个字段上搜索同一个查询字符串的关键字。 "bool": { "should": [ { "match": {
所以 ElasticSearch 有 terms 查询,它让我可以提供多个值并返回一个文档列表,其中字段 X 与这些值中的任何一个匹配。 但我想对 match_phrase 做同样的事情 - 即返
我遇到了 elasticsearch npm 模块的问题。这是我的查询: try { const { hits: { hits } } = await client.s
我是一名优秀的程序员,十分优秀!