У меня мало строк, пример:
1. 'any text marium malik 127'
2. 'other text marium malik 1.7 other text'
3. 'marium malik 1 7' etc.
4. 'any other text only'
Отображение:
'terms' => ['type' => 'text', 'analyzer' => 'new_analyzer']
'new_analyzer' =>
[
'tokenizer' => 'standard',
'filter' => [
'word_delimiter', 'lowercase',
'shingles_2_3', 'remove_space',
]
],
Если я включаю нечеткость и устанавливаю ее на Авто, и я ищу 'marium malik 127', я получаю вторую и третью строку в качестве результата поиска также из-за нечеткости, хотя я не хочу этого. Есть ли способ отключить размытость чисел?
Полное сопоставление:
'body' => [
'settings' =>
[
'analysis' =>
[
'analyzer' =>
[
"extract_number_analyzer" => [
"tokenizer" => "standard",
"filter" => ["extract_numbers", "decimal_digit"]
],
'new_analyzer' =>
[
'tokenizer' => 'standard',
'filter' => [
'word_delimiter', 'lowercase', 'word_combination', 'length2', 'remove_space',
]
]],
'filter' =>
[
'word_combination' => [
'type' => 'shingle',
'min_shingle_size' => 2,
'max_shingle_size' => 3,
'output_unigrams' => true
],
"extract_numbers" => [
"type" => "keep_types",
"types" => ["<NUM>"]
],
'remove_space' =>
[
'type' => 'pattern_replace',
'pattern' => ' ',
'replacement' => ''
],
'length2' =>
[
'type' => 'length',
'min' => '3'
]
]
]
'mappings' =>
[
'_doc' =>
[
'terms' => ['type' => 'text', 'analyzer' => "new_analyzer", "
fields" => ["extracted_number" => ["type" => "text",
"analyzer" => "extract_number_analyzer"
]]]
]