弹性搜索按搜索词开头的搜索结果的优先级排列



我需要优先考虑以搜索词开头的搜索结果。我使用了"match_phrase_prefix"。我使用了"match_phrase_prefix"。但不起作用

详细信息:

  • 查询

    获取/测试/产品/搜索?漂亮的{"查询":{"match_phrase_prefix":{"title":"iphone5c"}}}
  • 结果

    "_score":10.440153title":"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"
    
  • 映射

    "映射":{"产品":{"属性":{"title":{"type":"string","analyzer":"巴西"}}}}



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


是分析器的使用导致了标记化问题。看看下面你的文档字段是如何被标记化的。

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

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

最新更新