Solr PatternTokenizerFactory не работает с фразами - PullRequest
0 голосов
/ 04 октября 2018

Я не могу заставить PatternTokenizerFactory сопоставлять несколько слов одновременно.Если я использую простое выражение, например «^ ключевое слово $», и ищу «ключевое слово», оно будет работать

<tokenizer class="solr.PatternTokenizerFactory" pattern="^keyword$" group="0" />

"querystring":"keyword",    
"parsedquery":"(+DisjunctionMaxQuery(((title:keyword)^2.0)))/no_coord",

Однако, как только я включаю пробел в выражение, оно разрывается.то есть мое выражение «^ key.word $», и я ищу «ключевое слово», оно не будет работать

<tokenizer class="solr.PatternTokenizerFactory" pattern="^key.word$" group="0" />    

"querystring":"key word",
"parsedquery":"(+())/no_coord",

Я не могу понять, почему это не работает.Я пытаюсь сопоставить фразы, созданные на основе некоторого умного регулярного выражения, но не могу понять, что происходит.

Я проверил регулярное выражение в нескольких тестерах, и оно работает.Любая помощь будет принята с благодарностью.

Я использую Solr 6.1

1 Ответ

0 голосов
/ 05 октября 2018

Если вы используете edismax, параметр sow (разделение на пробелы) по умолчанию имеет значение true.Это заставляет edismax разделять содержимое перед , выполняя его через анализ.

Параметр sow

Разделить на пробел: если задано значение false, разделить пробеломпоследовательности терминов будут предоставляться для анализа текста в одном кадре, обеспечивая надлежащую функцию фильтров анализа, которые работают над последовательностями терминов, например, синонимами и черепицей из нескольких слов.По умолчанию установлено значение true: анализ текста вызывается отдельно для каждого отдельного пробела.

...