Итак, вам нужно использовать метод ОБРАТНОГО ИНДЕКСА для решения этой проблемы.
Создать пустой словарь, lookup_dict={}
Теперь переберите каждое слово в каждом утверждении и сохраните STATEMENTS_INDEX, соответствующий этому слову, как описано ниже.
statements = ['name is hello', 'name is not hello', 'school is hello', 'address is hello']
lookup_dict= {
'name': [0,1], # Denoting 'name' keyword comes in index 0 and 1
'is': [0,1,2,3],
'hello':[0,1,2,3],
'not':[1],
'address':[3]
}
Теперь, когда вы создадите свои индексы, что обычно является однократной операцией, если существует огромное количество данных.
Теперь, если вам нужно проверить, какое ключевое слово входит в состав всех операторов, просто используйте поисковый словарь.
Предположим, теперь вам нужно проверить, что во всех операторах используется ключевое слово name , просто загляните в словарь, и вы получите все индексы.
Эта логика называется обратным индексированием и используется lucene, который используется внутри solr ,asticsearch.