Я пытаюсь заставить ES QueryString соответствовать поисковому запросу, который включает в себя «и», но все, что я пробовал до сих пор (испытание разных анализаторов, токензиеров, фильтров), не сработало. В терминах MySQL я хочу:
WHERE field LIKE '%abbot and costello%'
Я пробовал различные конфигурации, это то, что я сейчас использую (небольшое улучшение в том, что оно соответствует «аббату» (с завершающим пробелом), но все еще не соответствует чему-либо с «и» в нем:
$eI->create(array(
'analysis' => array(
'analyzer' => array(
'indexAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'SQLedgeNGram',
'filter' => array(
'lowercase',
),
),
'searchAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'SQLedgeNGram',
'filter' => array(
'lowercase',
),
)
),
'tokenizer' => array(
'SQLedgeNGram' => array(
'type' => 'edgeNGram',
'min_gram' => 2,
'max_gram' => 35,
'side' => 'front'
),
'standardNoStop' => array(
'type' => 'standard',
'stopwords' => ''
)
)
)
), true
);
Вот мое значение поля тестового примера:
Abbott and Costello - Funniest Routines, Vol.
Пробуя различные анализаторы, я просто не могу найти совпадения с чем-либо, включающим "и".
Полученные результаты:
searching [abbot]
@ searchAnalyzer total results: 1
@ standard total results: 1
@ simple total results: 1
@ whitespace total results: 1
@ keyword total results: 1
searching [abbot ]
@ searchAnalyzer total results: 1
@ standard total results: 1
@ simple total results: 1
@ whitespace total results: 1
@ keyword total results: 1
searching [abbot and c]
searchAnalyzer total results: 0
standard total results: 0
simple total results: 0
whitespace total results: 0
keyword total results: 0
searching [abbot and cost]
searchAnalyzer total results: 0
standard total results: 0
simple total results: 0
whitespace total results: 0
keyword total results: 0
searching [abbot and costello]
searchAnalyzer total results: 0
standard total results: 0
simple total results: 0
whitespace total results: 0
keyword total results: 0
searching [abbot costello]
searchAnalyzer total results: 0
standard total results: 0
simple total results: 0
whitespace total results: 0
keyword total results: 0