2016-09-15 2 views
2

Я хочу иметь дело с чрезмерно определенными условиями поиска. Так что, если пользователь ищет «налогообложение», я хочу включить результаты для налога, но только если он представляет в заголовок. Ниже приведены мои настройки Elasticsearch. Я использую версию 1.5.Elasticsearch, связанный с сверхточными условиями

Настройки

{ 


"content_pages":{ 
     "settings":{ 
     "index":{ 
      "creation_date":"1473848573964", 
      "analysis":{ 
       "analyzer":{ 
        "string_analyzer":{ 
        "filter":[ 
         "standard", 
         "lowercase", 
         "stop", 
         "asciifolding" 
        ], 
        "char_filter":[ 
         "html_strip" 
        ], 
        "type":"custom", 
        "tokenizer":"standard" 
        } 
       } 
      }, 
      "number_of_shards":"2", 
      "number_of_replicas":"0", 

     } 
     } 
    } 
} 

Отображения

"mappings":{ 
    "content_page_type":{ 
     "_all":{ 
      "auto_boost":true 
     }, 
     "properties":{ 
      "author":{ 
       "type":"integer" 
      }, 
      "body:value":{ 
       "type":"string", 
       "boost":13.0, 
       "analyzer":"string_analyzer" 
      }, 
      "changed":{ 
       "type":"date", 
       "format":"date_time" 
      }, 
      "component":{ 
       "type":"string", 
       "index":"not_analyzed", 
       "analyzer":"string_analyzer" 
      }, 
      "content_page_tab_data":{ 
       "type":"string", 
       "boost":13.0, 
       "analyzer":"string_analyzer" 
      }, 
      "created":{ 
       "type":"date", 
       "format":"date_time" 
      }, 
      "field_aat_resource_type_taxonomy":{ 
       "type":"integer" 
      }, 
      "field_asset_file:file":{ 
       "type":"integer" 
      }, 
      "field_body:value":{ 
       "type":"string", 
       "boost":13.0, 
       "analyzer":"string_analyzer" 
      }, 
      "field_file_private:file":{ 
       "type":"integer" 
      }, 
      "field_study_resource_file:file":{ 
       "type":"integer" 
      }, 
      "field_tabs_page_body:value":{ 
       "type":"string", 
       "boost":13.0, 
       "analyzer":"string_analyzer" 
      }, 
      "id":{ 
       "type":"integer", 
       "include_in_all":false 
      }, 
      "level":{ 
       "type":"string", 
       "index":"not_analyzed", 
       "analyzer":"string_analyzer" 
      }, 
      "nid":{ 
       "type":"integer" 
      }, 
      "programme":{ 
       "type":"string", 
       "index":"not_analyzed", 
       "analyzer":"string_analyzer" 
      }, 
      "search_api_access_node":{ 
       "type":"string", 
       "index":"not_analyzed", 
       "analyzer":"string_analyzer" 
      }, 
      "search_api_language":{ 
       "type":"string", 
       "index":"not_analyzed", 
       "analyzer":"string_analyzer" 
      }, 
      "status":{ 
       "type":"boolean" 
      }, 
      "strand":{ 
       "type":"string", 
       "index":"not_analyzed", 
       "analyzer":"string_analyzer" 
      }, 
      "title":{ 
       "type":"string", 
       "boost":21.0, 
       "analyzer":"string_analyzer" 
      }, 
      "type":{ 
       "type":"string", 
       "index":"not_analyzed", 
       "analyzer":"string_analyzer" 
      } 
     } 
    } 
    } 

Поисковый запрос

{ 
    "from":0, 
    "size":"10",  
    "query":{ 
     "bool":{ 
     "must":[ 
      { 
       "multi_match":{ 
        "query":"taxation", 
        "fields":[ 
        "body:value^13.0", 
        "content_page_tab_data^13.0", 
        "field_body:value^13.0", 
        "field_tabs_page_body:value^13.0", 
        "title^21.0" 
        ] 
       } 
      } 
     ], 
     "should":[ 
      { 
       "query_string":{ 
        "query":"(taxation)", 
        "fields":[ 
        "body:value^13.0", 
        "content_page_tab_data^13.0", 
        "field_body:value^13.0", 
        "field_tabs_page_body:value^13.0", 
        "title^21.0" 
        ] 
       } 
      }, 
      { 
       "fuzzy_like_this" : { 
        "fields" : ["title"], 
        "like_text" : "taxation", 
        "fuzziness": "AUTO" 
       } 
      } 
     ] 
     } 
    }  
} 

Выше запрос не возвращает результаты с заголовком, который содержит только «налог», а «налогообложение». Я также не хочу включать нерелевантные результаты, такие как «отношение» или «действие».

ответ

0

Мне удалось решить эту проблему, используя Algorithmic Stemmer. Я играл в Fuzzy, но это был не лучший способ добиться желаемых результатов.

Смежные вопросы