Я хотел бы найти слово или слова, которые состоят из дефиса, whitecaps и нечувствительны к регистру.эластичный поиск поиск случай нечувствительность дефисы whitecaps
Здесь индекс структуры:
body' => array(
'settings' => array(
"analysis" => array(
"analyzer" => array(
"default" => array(
"type" => "custom",
'tokenizer' => "whitespace",
"filter" => array("lowercase")
),
"autoCompleteSearch" => array(
"tokenizer" => "standard",
"filter" => array("lowercase", "trim", "standard")
)
)
)
),
'mappings' => array(
"myindex" => array(
'properties' => array(
'Id' => array(
'type' => 'integer',
'index' => 'not_analyzed'
),
'Title' => array(
'type' => 'string',
'fields'=> array(
raw' => array(
'type' => 'string',
"search_analyzer" => "autoCompleteSearch",
'index' => 'not_analyzed'
)
)
),
'Content' => array(
'type' => 'string',
'fields'=> array(
raw' => array(
'type' => 'string',
"search_analyzer" => "autoCompleteSearch",
'index' => 'not_analyzed'
)
)
)
)
)
)
Вот запрос:
"query" : {
"query_string": {
"query": "*t-shir red*",
"lowercase_expanded_terms": false,
"fields": [
"Title.raw",
"Content.raw"
]
}
}
Я хочу найти T-рубашка RED, как я пишу в поле поиска напр. «футболка красная».
спасибо, что заблаговременно!
Сделайте свой '.raw' поля или создать другой подпол (если вам нужно '.raw' для чего-то еще) как« проанализированный »с помощью анализатора« keyword »в сочетании с фильтром« нижний регистр ». Так что подполе будет сохранять текст как есть, но в нижнем регистре. А при использовании 'query_string' вы должны указать' Title.raw_lowercased'. –