Clojure Java Lucene: ComplexPhraseQueryParser с несколькими полями

Кто я могу использовать ComplexPhraseQueryParser в нескольких полях?

Прямо сейчас мой код использует MultiFieldQueryParser. и выглядит так:

(defn parse-multi-query
  "Parses term query-string and searches against all indexed-keys
  with AND condition, OR condition being reached with comma sep in input-term.
  Appends to input-term AND account_id
  Parses term (string) and look for result in all index keys
  except when a key is specified in query string (e.g. color:blue)"
  [^String query-string]
  (.parse (doto (MultiFieldQueryParser. ;; ComplexPhraseQueryParser
                 (into-array ["color" "id" "other-id"])
                 (ClassicTokenizer.))
            (.setDefaultOperator QueryParser$Operator/AND))
          query-string))

Это отлично работает, но не может выполнять сложные запросы, поддерживаемые ComplexPhraseQueryParser.

И я не могу передать (into-array (map #(str (name %)) indexed-keys)) на ComplexPhraseQueryParser

Большое спасибо!

Что ты пытаешься сделать? Почему вы не можете выполнять сложные запросы?

Carcigenicate 22.11.2018 16:42

Я хочу выполнять сложные запросы к полям умножения "123456*" AND NOT color: "Blue", id:123456*,other-id:223456* или "(john jon jonathan~) peters*"

leontalbot 22.11.2018 16:47

В чем проблема? Что ты пробовал? В чем конкретно вам нужна помощь?

Carcigenicate 22.11.2018 17:06

И я не могу передать (into-array (map #(str (name %)) indexed-keys)) в ComplexPhraseQueryParser., который я хочу

leontalbot 22.11.2018 17:09

MultiFieldQueryParser - это ComplexPhraseQueryParser?

Carcigenicate 22.11.2018 17:11

нет, я так не думаю.

leontalbot 22.11.2018 17:15

Тогда что ты пытаешься сделать? Пожалуйста, будьте откровенны. Это довольно расплывчато. Вы пробовали передать массив конструктору парсера? Опять же, в чем вам нужна помощь?

Carcigenicate 22.11.2018 17:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
112
0

Другие вопросы по теме