当前位置: 首页 > 知识库问答 >
问题:

将一个大词标记为词的组合

佴波鸿
2023-03-14

假设我有超级碗是弹性搜索中文档属性的值。术语查询超级碗如何与超级碗匹配?

我读过字母标记器和单词定界符,但它们似乎都不能解决我的问题。基本上,我希望能够将一个大词的组合转换为有意义的词的组合。

https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-word-delimiter-tokenfilter.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-letter-tokenizer.html

共有2个答案

籍英叡
2023-03-14

有一些方法可以在不更改实际索引的情况下做到这一点。例如,如果您至少使用5.2(其中引入了规范化器s),但它也可以是早期版本,但5. x使其更容易,您可以定义一个规范化器以小写您的文本而不更改它,然后在搜索时使用模糊查询来考虑超级之间的空间。不过,我的解决方案是针对您给出的这个示例的。就像大多数时候使用Elasticsearch一样,人们需要考虑进入Elasticsearch的数据类型以及在搜索时需要什么。

在任何情况下,如果您对这里的方法感兴趣,它是:

DELETE test
PUT /test
{
  "settings": {
    "analysis": {
      "normalizer": {
        "my_normalizer": {
          "type": "custom",
          "char_filter": [],
          "filter": ["lowercase", "asciifolding"]
        }
      }
    }
  },
  "mappings": {
    "test": {
      "properties": {
        "title": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "normalizer": "my_normalizer"
            }
          }
        }
      }
    }
  }
}
POST test/test/1
{"title":"Super Bowl"}

GET /test/_search
{
  "query": {
    "fuzzy": {
      "title.keyword": "superbowl"
    }
  }
}
吴升
2023-03-14

我知道这已经很晚了,但是你可以使用同义词过滤器。你可以定义超级碗和“超级碗”、“超级碗”等一样。

 类似资料:
  • 问题内容: 我在这里浏览了一些问题,但这些问题似乎都不是我的问题。假设我有2个字典,它们是dict1 和字典2 我正在编写一个程序,需要将它们结合到一个字典finaldict中 非常感谢您的帮助,我一直在努力,现在已经一无所获 问题答案: 这是通用版本。即使只有键之一存在键,也可以用它来创建一个以值作为列表的字典。 输出量 如果您使用的是Python 2,则必须像这样更改for循环:

  • 问题内容: 我试图将整个段落输入到我的文字处理器中,然后先分成句子,然后再分成单词。 我尝试了以下代码,但它不起作用, 但是,这不起作用,并给我错误。那么,如何将段落标记为句子,然后再标记为单词? 一个示例段落: 这东西似乎使那只黑褐色的小狗感到吃惊和震惊,使他伤心。 他绝望地沉在孩子的脚下。当重击一声再加上幼稚的训诫时,他转过身来,用独特的方式握住了爪子。同时,他用耳朵和眼睛向孩子祈祷。 警告:

  • 问题内容: 我有一个像这样的词,它由两个简单的词组合而成,没有空格。 我想知道哪种Lucene Analyzer可以将这种单词标记为两个单独的单词? 问题答案: 有一个看作为在Solr的说明 该过滤器使用组成词的词典将复合词拆分或分解为单个词。每个输入令牌均不变地传递。如果还可以将其分解为子字,则每个子字也将在同一逻辑位置添加到流中。 在:“ Donaudampfschiff dummkopf”中

  • 从HD钱包的创建方式可知,要创建一个HD钱包,我们必须首先有一个确定的512bit(64字节)的随机数种子。 如果用电脑生成一个64字节的随机数作为种子当然是可以的,但是恐怕谁也记不住。 如果自己想一个句子,例如bitcoin is awesome,然后计算SHA-512获得这个64字节的种子,虽然是可行的,但是其安全性取决于自己想的句子到底有多随机。像bitcoin is awesome本质上就

  • 我使用Lucene3.5和SpanishAnalyzer(它本身使用SpanishStemmer和StandardTokenizer)。 当SpanishAnalyzer用单词(例如)“Claramente”和“Claro”索引文档时,它们都将被索引为“CLAR”。 这种行为对我的需要很有用,今天在查询之前,我使用分析器的+获取搜索词的标记,并根据索引的文档进行搜索。我不是在使用QueryPars

  • 我找到了一个解决方案,但速度非常慢: 不使用外部模块(Numpy等),你有什么想法吗?