Elasticsearch-如何为搜索和索引指定相同的分析器

Xuekai Du

我正在使用西班牙语搜索引擎。(我不会说西班牙语),但根据我的研究,目标或多或少是这样的:1.过滤掉诸如“ dos”,“ de”,“ la”之类的停用词... 2.阻止两个搜索词和索引。例如,如果您搜索“ primera”,则还将显示“ primero”,“ primer”。

我的尝试:

es_analyzer={
        "settings": {
            "analysis": {
            "filter": {
                "spanish_stop": {
                "type":       "stop",
                "stopwords":  "_spanish_" 
                },
                "spanish_stemmer": {
                "type":       "stemmer",
                "language":   "spanish"
                }
            },
            "analyzer": {
                "default_search": {
                    "type": "spanish"
                },
                "rebuilt_spanish": {
                "tokenizer":  "standard",
                "filter": [
                    "lowercase",
                    "spanish_stop",
                    "spanish_stemmer"
                ]
                }
            }
            }
        }
    }

问题:当在中使用"type":"spanish""default_search",我的查询“ primera”会被阻止为“ primer”,这是正确的,但是即使我指定"spanish_stemmer"在过滤器中使用,也不会阻止索引中的文档。因此,当我搜索“ primera”时,它仅显示“ primer”的完全匹配项。有什么解决的建议吗?

可能的解决方法,但我还没有弄清楚语法:

  1. "spanish"在过滤器中使用内置分析仪。语法是什么?
  2. 在西班牙语中添加西班牙词干和停用词"default_search"但我不知道如何在其中使用复合设置。
ESCoder

添加带有索引数据,映射,搜索查询和搜索结果的工作示例

索引映射:

 {
  "settings": {
    "analysis": {
      "filter": {
        "spanish_stop": {
          "type": "stop",
          "stopwords": "_spanish_"
        },
        "spanish_stemmer": {
          "type": "stemmer",
          "language": "spanish"
        }
      },
      "analyzer": {
        "default_search": {
          "type":"spanish",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "spanish_stop",
            "spanish_stemmer"
          ]
        }
      }
    }
  },
  "mappings":{
    "properties":{
      "title":{
        "type":"text",
        "analyzer":"default_search"
      }
    }
  }
}

索引数据:

{
  "title": "primer"
}
{
  "title": "primera"
}
{
  "title": "primero"
}

搜索查询:

{
  "query":{
    "match":{
      "title":"primer"
    }
  }
}

搜索结果:

"hits": [
      {
        "_index": "stof_64420517",
        "_type": "_doc",
        "_id": "3",
        "_score": 0.13353139,
        "_source": {
          "title": "primer"
        }
      },
      {
        "_index": "stof_64420517",
        "_type": "_doc",
        "_id": "1",
        "_score": 0.13353139,
        "_source": {
          "title": "primera"
        }
      },
      {
        "_index": "stof_64420517",
        "_type": "_doc",
        "_id": "2",
        "_score": 0.13353139,
        "_source": {
          "title": "primero"
        }
      }
    ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Elasticsearch Python-索引分析器和搜索分析器

来自分类Dev

Elasticsearch搜索分析器

来自分类Dev

用于字段映射的Elasticsearch索引和搜索时间分析器不起作用

来自分类Dev

Elasticsearch:如何列出特定索引使用的每个分析器

来自分类Dev

如何为ruby中的elasticsearch-persistence配置自定义分析器?

来自分类Dev

使用模糊和带状分析器的matchQuery进行Elasticsearch搜索

来自分类Dev

用于在ElasticSearch中搜索短语的分析器

来自分类Dev

在ElasticSearch中使用分析器进行部分搜索

来自分类Dev

分析器,用于在ElasticSearch中搜索短语

来自分类Dev

Elasticsearch搜索无结果,可能是分析器

来自分类Dev

Elasticsearch映射时应同时使用索引和分析器

来自分类Dev

AWS Elasticsearch:如何更新现有索引的分析器设置

来自分类Dev

ElasticSearch-使用相同的字段名称但使用不同的分析器搜索不同的doc_types

来自分类Dev

Elasticsearch“无法找到分析器”错误和设置 API 未显示分析器

来自分类Dev

如何在Elasticsearch中组合模式分析器和char_filter

来自分类Dev

Elasticsearch - 如何在查询中使用多个分析器

来自分类Dev

Django Haystack + ElasticSearch分析器

来自分类Dev

在ElasticSearch设置中更新分析器

来自分类Dev

Elasticsearch“无法找到分析器”

来自分类Dev

ElasticSearch找不到分析器?

来自分类Dev

Elasticsearch 自定义分析器

来自分类Dev

Elasticsearch:更新索引分析器后,索引需要重新索引吗?

来自分类Dev

Azure搜索-是否可以在单个字段(例如ElasticSearch)上使用多个分析器?

来自分类Dev

应用分析器/过滤器时搜索elasticsearch错误

来自分类Dev

Elasticsearch无法使用空格分析器在dot(。)之前搜索单词

来自分类Dev

mapper_parsing_exception为自定义分析器,同时在Elasticsearch中创建索引?

来自分类Dev

使用自定义分析器在Elasticsearch上创建索引时出错

来自分类Dev

在映射属性中给出分析器时如何分析句子 - elasticsearch

来自分类Dev

elasticsearch分析器-小写和空白令牌生成器

Related 相关文章

  1. 1

    Elasticsearch Python-索引分析器和搜索分析器

  2. 2

    Elasticsearch搜索分析器

  3. 3

    用于字段映射的Elasticsearch索引和搜索时间分析器不起作用

  4. 4

    Elasticsearch:如何列出特定索引使用的每个分析器

  5. 5

    如何为ruby中的elasticsearch-persistence配置自定义分析器?

  6. 6

    使用模糊和带状分析器的matchQuery进行Elasticsearch搜索

  7. 7

    用于在ElasticSearch中搜索短语的分析器

  8. 8

    在ElasticSearch中使用分析器进行部分搜索

  9. 9

    分析器,用于在ElasticSearch中搜索短语

  10. 10

    Elasticsearch搜索无结果,可能是分析器

  11. 11

    Elasticsearch映射时应同时使用索引和分析器

  12. 12

    AWS Elasticsearch:如何更新现有索引的分析器设置

  13. 13

    ElasticSearch-使用相同的字段名称但使用不同的分析器搜索不同的doc_types

  14. 14

    Elasticsearch“无法找到分析器”错误和设置 API 未显示分析器

  15. 15

    如何在Elasticsearch中组合模式分析器和char_filter

  16. 16

    Elasticsearch - 如何在查询中使用多个分析器

  17. 17

    Django Haystack + ElasticSearch分析器

  18. 18

    在ElasticSearch设置中更新分析器

  19. 19

    Elasticsearch“无法找到分析器”

  20. 20

    ElasticSearch找不到分析器?

  21. 21

    Elasticsearch 自定义分析器

  22. 22

    Elasticsearch:更新索引分析器后,索引需要重新索引吗?

  23. 23

    Azure搜索-是否可以在单个字段(例如ElasticSearch)上使用多个分析器?

  24. 24

    应用分析器/过滤器时搜索elasticsearch错误

  25. 25

    Elasticsearch无法使用空格分析器在dot(。)之前搜索单词

  26. 26

    mapper_parsing_exception为自定义分析器,同时在Elasticsearch中创建索引?

  27. 27

    使用自定义分析器在Elasticsearch上创建索引时出错

  28. 28

    在映射属性中给出分析器时如何分析句子 - elasticsearch

  29. 29

    elasticsearch分析器-小写和空白令牌生成器

热门标签

归档