ArticleCase отсутствует в гнезде elision filter? - PullRequest
0 голосов
/ 11 февраля 2019

Согласно этой странице , французский анализатор определяется с шагом без учета регистра, например:

...
"french_elision": {
  "type": "elision",
  "articles_case": true,  // <==== Note this article case property
  "articles": [
    "l", "m", "t", "qu", "n", "s", "j", "d", "c", "jusqu", "quoiqu", "lorsqu", "puisqu"
  ]
},
...

При попытке воссоздать это в NEST (v6.6)Я, кажется, поймал загвоздку в том, что вызов ArticleCase, кажется, не существует.Это просто отсутствует как ошибка?Или есть другой способ, которым это должно быть сделано?

.Elision("french_elision", f => f
  // .ArticlesCase(true) <==== Doesn't exist
  .Articles("l", "m", "t", "qu", "n", "s", "j", "d", "c", "jusqu", "quoiqu", "lorsqu", "puisqu"))

Я также искал bool на Articles() или что-то, но я не могу его найти.Я пошел вперед и запустил код, и значение не установлено по умолчанию.Как убедиться, что для фильтра elision установлено это значение?Спасибо

1 Ответ

0 голосов
/ 13 февраля 2019

Как видно здесь: https://github.com/elastic/elasticsearch-net/issues/3570

russcam говорит следующее:

Это отсутствует.Мы добавим его в следующий выпуск.

А пока вы можете добавить его, наследуя от ElisionTokenFilter, и добавить свойство, например,

public class MyElisionTokenFilter : ElisionTokenFilter 
{
    [PropertyName("articles_case")]
    public bool? ArticlesCase { get; set; }
}

и использовать его в своих настройках.используя

.UserDefined("french_elision", new MyElisionTokenFilter
{
    ArticlesCase = true,
    Articles = new[] { "l", "m", "t", "qu", "n", "s", "j", "d", "c", "jusqu", "quoiqu", "lorsqu", "puisqu" }
})
...