【发布时间】:2019-09-20 22:04:39
【问题描述】:
应用版本
弹性搜索:v.7.1
Laravel:v5.8
操作系统版本:Ubuntu 18(服务器)/Windows 10(开发 PC)
Elasticsearch 搜索 API 的“query_string”查询返回类似“Lexical error”的错误消息——说明查询中有问题。
复制步骤:
一个。我们正在使用包含 4629 个字符(包括字母和符号,如括号和双引号)的“query_string”查询
湾。当我们使用我们的 PHP 和 Python 应用程序进行查询时,会弹出标题中提到的错误
主要问题
我在这里做错了什么还是应用程序级错误/错误?一直在尝试使用“simple_query_string”等替代方法,但它具有不同的行为,因此我们非常热衷于使用 Elasticsearch 的 query_string 查询
这是查询
"query_string" => [
"fields" => ['title', 'content'],
"query" => """
(("Salvador "Sal" San Buenaventura Panelo")) OR ("Christopher Lawrence Go") OR ("DILG Undersecretary Epimaco Densing") OR ("Rodolfo Fariñas") OR ("Francis Tolentino" AND ("De Lima" OR "Leila De Lima")) OR ("Reynaldo V. Umali" AND ("De Lima" OR "Leila De Lima")) OR ("Bong Revilla") OR (("Jose "Joe" Callangan Calida")) OR ("Gus S. Tambunting" OR "GusTambunting" AND ("De Lima" OR "Leila De Lima")) OR ("Ramon Bong Revilla" OR "Bong Revilla" AND ("De Lima" OR "Leila De Lima")) OR (Lacson) OR ("Francis Ng Tolentino") OR ("Jose Calida") OR ("José Ruperto Martín Marfori Andanar") OR ("Prospero Pichay Jr.") OR ("Pantaleon Alvarez" AND ("De Lima" OR "Leila De Lima")) OR ("Prospero Pichay" AND ("De Lima" OR "Leila De Lima")) OR ("Senator Vicente Sotto") OR ("Paolo "Pulong" Zimmerman Duterte") OR ("Prospero Arreza Pichay Jr.") OR ("Rudy Fariñas" AND ("De Lima" OR "Leila De Lima")) OR ("Paolo Duterte") OR ("Rudy Fariñas") OR ("Fredenil Castro") OR ("Salvador B. Belaro Jr.") OR ("Sen. Imee Marcos") OR ("Manny Pacquiao") OR ("Senator Aquilino "Koko" Pimentel III" OR "Sen. Aquilino "Koko" Pimentel III") OR ("Senator Aquilino Pimentel III" OR "Sen. Aquilino Pimentel III" OR "Senator Aquilino Pimentel") OR ("Senator Vicente C. Sotto III") OR ("Tito Sotto") OR ("Bato dela Rosa") OR ("Sen. Bato") OR ("Hon. Reynaldo V. Umali") OR ("Gus S. Tambunting") OR ("Tito Sotto" OR "Senator Vicente Sotto" AND ("De Lima" OR "Leila De Lima")) OR ("Bato dela Rosa" OR "Senator Ronald "Bato" dela Rosa"("De Lima" OR "Leila De Lima")) OR ("Bong Go" OR "Christopher Lawrence Go" AND ("De Lima" OR "Leila De Lima")) OR ("Paolo Duterte" AND ("De Lima" OR "Leila De Lima")) OR ("Fredenil H. Castro" OR "Fredenil Castro" AND ("De Lima" OR "Leila De Lima")) OR ("Koko Pimentel") OR ("Paolo Zimmerman Duterte") OR ("Pantaleon Diaz Alvarez") OR ("Salvador Belaro" AND ("De Lima" OR "Leila De Lima")) OR ("Ramon Revilla") OR ("Senator Bong Go") OR (Panfilo) OR ("Jose Callangan Calida") OR ("Salvador San Buenaventura Panelo") OR ("Pantaleon "Bebot" Diaz Alvarez") OR ("Fredenil H. Castro" OR "Fredenil Castro") OR ("Salvador Belaro Jr.") OR ("Salvador Belaro") OR ("Reynaldo V. Umali") OR ("Senator Koko Pimentel III) OR ("Sen. AND Koko AND Pimentel AND III" OR "Sen. AND Koko AND Pimentel") OR ("Bong AND Go") OR ("Ramon AND Bong AND Revilla") OR ("Senator AND Panfilo AND Lacson" OR "Panfilo AND Lacson" OR "Ping AND Lacson" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Manny AND Pacquiao" OR "Senator AND Manny AND Pacquiao" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Salvador AND Panelo" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Epimaco AND Densing" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Senator AND Sotto") OR ("Vicente AND Sotto") OR ("Panfilo AND Lacson" OR "Ping AND Lacson") OR ("Ronald AND dela AND Rosa") OR ("Senator AND Revilla") OR ("Prospero AND Pichay") OR ("Jose AND Calida" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Senator AND Francis AND Tolentino") OR ("Senator AND Ronald AND dela AND Rosa") OR ("Menardo AND Guevarra" OR "Menardo AND I. AND Guevarra") OR ("Rodolfo AND "Rudy" AND Castro AND Fariñas") OR ("Senator AND Imee AND Marcos" OR "Imee AND Marcos" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Gus AND S. AND Tambunting" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Ronald AND “Bato” AND dela AND Rosa") OR ("Senator AND Bato AND dela AND Rosa") OR ("Senator AND Ramon AND Revilla AND Jr.") OR ("Sen. AND Francis AND Tolentino") OR ("Francis AND Tolentino") OR (("María AND Imelda AND Josefa AND "Imee" AND Romualdez AND Marcos")) OR ("Pulong AND Duterte") OR ("Rodolfo AND Castro AND Fariñas") OR ("Menardo AND Guevarra" OR "Menardo AND I. AND Guevarra"("De AND Lima" OR "Leila AND De AND Lima")) OR ("Christopher AND Lawrence AND “Bong” AND Go") OR ("Senator AND Imee AND Marcos") OR ("Justice AND Secretary AND Menardo AND Guevarra" OR "Justice AND Secretary AND Menardo AND I. AND Guevarra") OR ("Epimaco AND Densing") OR ("Fredenil AND "Fred" AND H. AND Castro") OR ("Koko AND Pimentel" OR "Senator AND Aquilino AND Pimentel AND III" OR "Sen. AND Aquilino AND Pimentel AND III" OR "Senator AND Aquilino AND Pimentel" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Martín AND Andanar" ("De AND Lima" OR "Leila AND De AND Lima")) OR ("Senator AND Ronald AND "Bato" AND dela AND Rosa") OR ("Christopher AND Lawrence AND "Bong" AND Tesoro AND Go") OR ("Senator AND Christopher AND Lawrence AND "Bong" AND Tesoro AND Go") OR ("Senator AND Panfilo AND Lacson") OR ("Senator AND Manny AND Pacquiao") OR ("Salvador AND Panelo") OR ("Martín AND Andanar") OR ("Pantaleon AND Alvarez")
"""
【问题讨论】:
-
很难说...这是一个相当长的查询...尝试从单个约束开始,然后添加更多约束直到它开始中断。
-
错误状态为“Encountered
after ... ”,因此查询字符串可能因为太大(?)而被截断。也可能是由于未转义的保留字符:+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ / -
是的,@EricLavault 先生,我们假设查询太长了,但是有没有办法让“query_string”接受这样的查询?因为这是我们旧系统使用狮身人面像的行为:(
-
你好先生@Val,我们假设错误提示是因为查询太长,但是每当我们使用 simple_query_string 时,整个查询都有效,但是什么simple_query_string 的危险在于它对用户所需的关键字并不严格
-
编辑您的问题并以文本格式而不是图像添加查询,然后我们可以轻松为您提供帮助
标签: elasticsearch lucene