Skip to content

Instantly share code, notes, and snippets.

@IvanShamatov
Created December 11, 2015 10:06
Show Gist options
  • Save IvanShamatov/a59ce631f7cb9ba4b912 to your computer and use it in GitHub Desktop.
Save IvanShamatov/a59ce631f7cb9ba4b912 to your computer and use it in GitHub Desktop.
анализатор
analysis: {
filter: {
filter_special_symbol: {
type: "pattern_replace",
pattern: "\W()|_-$%^&*.,<>",
replacement: ""
}
},
tokenizer: {
sku_tokenizer: {
type: "nGram",
min_gram: "2",
max_gram: "15"
}
},
analyzer: {
sku_analyzer: {
type: "custom",
tokenizer: "sku_tokenizer",
filter: ['lowercase', 'filter_special_symbol']
}
}
}
маппинг
sku: {
type: 'string',
fields: {
search: { type: 'string', boost: 40, analyzer: 'sku_analyzer'},
sort: { type: 'string', index: 'not_analyzed' },
suggest: {type: 'completion'}
}
}
поиск
{
body: {
query: {
bool: {
should: [
# Полное соответствие (ищем по токену префиксу)
{ prefix:{ sku: { value: @search, boost: 2000 }}},
# Если не найдет жесткое соответствие токену по префиксу, то по матчу должно найти
{ match: { sku: { query: @search, boost: 1000 }}}
]
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment