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

弹性搜索优先排序以搜索词开头的搜索结果

单展
2023-03-14

我需要对以搜索词开头的搜索结果进行优先级排序。我用了“匹配短语前缀”。我用了“匹配短语前缀”。但它不起作用。

细节:

>

  • 质疑

         GET /test/products/_search?pretty
            { 
              "query": {
                "match_phrase_prefix": {
                 "title": "iphone 5c"
                }
              }
            }
    

    结果

        "_score": 10.440153
        title": "Capa de Tpu para Iphone 5c Modelo Apple + Película"
    
    
    "_score": 9.981493,
    "title": "Capa Bumper Iphone 5C + Pelicula",
    
    "_score": 8.610232
    "title": "Pelicula Protetora para Iphone 5C Transparente"
    
    "_score": 5.154923,
    "title": "iPhone 5c Apple 8GB com Tela de 4”, iOS7, Câmera 8MP, Touch Screen, Wi-Fi, 3G/4G, GPS, MP3 e Bluetooth - Rosa"
    
    "_score": 5.154923
    "title": "iPhone 5c Apple 8GB com Tela de 4”, iOS7, Câmera 8MP, Touch Screen, Wi-Fi, 3G/4G, GPS, MP3 e Bluetooth - Branco"
    
    "_score": 5.154923
    "title": "iPhone 5c Apple 8GB com Tela de 4”, iOS7, Câmera 8MP, Touch Screen, Wi-Fi, 3G/4G, GPS, MP3 e Bluetooth - Preto"
    

    映射

        "mappings": {
            "products": {
              "properties": {
                "title": {
                   "type": "string",
                   "analyzer": "brazilian"
                }
              }
            }
        }
    



    在这个例子中,我需要的第一个结果是设备(Iphone 5c)


  • 共有1个答案

    钮边浩
    2023-03-14

    使用Analyzer导致标记化问题。下面看看您的文档字段是如何标记的。

    你需要使用关键字标记器。

    curl -XGET 'localhost:9200/test/_analyze?analyzer=standard&pretty' -d 'Capa Bumper Iphone 5C' | grep token
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   532  100   511  100    21  32800   1347 --:--:-- --:--:-- --:--:-- 34066
      "tokens" : [ {
        "token" : "capa",
        "token" : "bumper",
        "token" : "iphone",
        "token" : "5c",
    

    在映射中添加关键字标记器:

    https://www.elastic.co/blog/starts-with-phrase-matching

     类似资料:
    • 假设我有三个指数:城市、博物馆和景点。 现在我正在查询一个术语的所有索引(),例如“维也纳” 作为结果,我得到: 维也纳:维也纳艺术博物馆 有没有办法优先考虑指数,这样我就可以得到第一个城市,而不是景点,最后是博物馆,就像这样: 维也纳 维也纳的Riesenrad 维也纳:维也纳艺术博物馆 维也纳:维也纳历史博物馆

    • 我有弹性搜索的问题。接缝搜索项在搜索结果中被隔离。 我们有一个使用弹性搜索索引的大型字幕数据库。然而,我们的搜索会在搜索词被隔离的地方对搜索结果进行优先排序。 Ie:搜索“吃”会产生: 哦,跳伞跳伞哦,我找到了疯狂饮食吃,吃传球,传球你们这些家伙真烂那是什么花样游泳 和 这是我的最后一晚,所以我们要像没有明天一样生活我想我只是想,吃点东西带上所有的食物,不管是麦当劳,还是冰淇淋。 我们需要INST

    • 我在处理一个单词搜索问题。我正确地实现了dfs搜索,但在其他地方有一些琐碎的错误。

    • 我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。

    • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

    • 主要内容:深度优先搜索(简称“深搜”或DFS),广度优先搜索,总结前边介绍了有关图的 4 种存储方式,本节介绍如何对存储的图中的顶点进行遍历。常用的遍历方式有两种: 深度优先搜索和 广度优先搜索。 深度优先搜索(简称“深搜”或DFS) 图 1 无向图 深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。例如图 1 是一个无向图,采用深度优先算法遍历这个图的过程为: 首先任意找一个未被遍历过的顶点,例如从 V1 开始,由于 V1 率先访问过了,所以