Документы в индекс поступают как на русском, так и на украинском языке. Для украинского аналайзера инсталлировал плагин.
Допустим есть такие фразы:
1: "Тарас Шевченко автор Кобзаря"
2: "Андрей Шевченко тренер сборной Украины по футболу"
3: "Тарас Шевченко и Адрей Шевченко - знаменитые украинцы"
4: "Шевченко завтра проведет прессконференцию"
Так вот, как мне написать запрос, который бы исключал определенные сочетания ключевых фраз для поиска, например, я ищу документы только о Андрее Шевченко и о Шевченко без упоминания имени (2,3,4)
Запрос
выдаст мне все документы.
Как исключить Тараса Шевченко?) Когда я использую в bool запросе must_not я теряю фразу, где они упоминаются оба...
Надеюсь не путано объяснил
А если поместить только Тараса в must_not? Если честно, я не понимаю. что вы пытаетесь добиться. Вы не могли бы описать проблему, которую вы пытаетесь решить?
То запрос мне выдаст 2 и 4 документ, но я потеряю 3, а мне он нужен, так как там есть Андрей Шевченко )
Моя проблема в том, что мне нужно найти все документы, где есть Шевченко, но определенные словосочетания нужно исключить (Тарас Шевченко, музей Шевченко и т.п.), а определенные (Андрей Шевченко или просто Шевченко) должны находится запросом. Если я буду делать must_not на "Тарас" или "Тарас Шевченко" я буду терять документы, в которых они встречаются оба... Т.е. мне нужно что-то типа should_not ))
Более-менее постоянные
Т.е. я могу для ключевой фразы "Шевченко" (иногда это будет фраза, а не слово, просто я привел Шевченко для примера) подобрать словосочетания, которые мне нужно исключить.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.