Двухсторонние синонимы Lucene.NET - PullRequest
1 голос
/ 05 мая 2019

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

        var map = new SynonymMap.Builder(true);
        var synonyms = string.Join("\0", new string[] { "broken", "break", "malfunction" });
        map.Add(new CharsRef("broke"), new CharsRef(synonyms), true);

        stream = new SynonymFilter(stream, map.Build(), true);

Должен ли я добавить карту для каждогосиноним?

        var synonyms2 = string.Join("\0", new string[] { "broke", "break", "malfunction" });
        map.Add(new CharsRef("broken"), new CharsRef(synonyms2), true);
        var synonyms3 = string.Join("\0", new string[] { "broken", "break", "broke" });
        map.Add(new CharsRef("malfunction"), new CharsRef(synonyms3), true);

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

Если у меня есть база данныхкоторый управляет синонимами для сотен или тысяч слов ... ожидается ли просто добавить десятки тысяч карт для каждой возможной комбинации?

...