Я должен создать поисковую систему, которая позволяет любому вводить любое логическое выражение, например
(word1 + word2) - !word3
- где +
означает and
, -
означает or
, а !
означает not
.
затем ищет эти слова в базе данных и возвращает документы, которые достигают выражения ..
поэтому я использовал словарь так:
Dictionary<string, List<int>> WordsAndDoc = new Dictionary<string, List<int>>();
и я искал каждое слово в базе данных, затем добавил его со списком идентификаторов документов в словаре
Я объявил два метода.
сначала объединить два списка:
public List<int> Intersect(List<int> P1, List<int> P2)
второй после объединения два Список:
public List<int> Union(List<int> P1, List<int> P2)
проблема в следующем: как мне разобрать логическое выражение в TextBox, где, если есть +
, объединить два списка слов. если есть -
, тогда объединение два списка
наконец создать один список необходимых документов id ...
Пожалуйста, помогите мне и большое спасибо.