/* * Copyright 2013 Websquared, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.fastcatsearch.query; import org.fastcatsearch.ir.query.Query; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.Level; import static junit.framework.TestCase.*; public class QueryParserTest { private static final Logger logger = LoggerFactory.getLogger(QueryParserTest.class); @Before public void init() { assertTrue(true); String LOG_LEVEL = System.getProperty("LOG_LEVEL"); if (LOG_LEVEL == null || "".equals(LOG_LEVEL)) { LOG_LEVEL = "DEBUG"; } ((ch.qos.logback.classic.Logger) LoggerFactory .getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME)) .setLevel(Level.toLevel("DEBUG")); ((ch.qos.logback.classic.Logger) LoggerFactory .getLogger(QueryParser.class)).setLevel(Level .toLevel(LOG_LEVEL)); logger.debug("--------------------------------------------------------------------------------"); } @Test public void test1() { QueryParser parser = QueryParser.getInstance(); String queryString = "cn=allgoods&ht=<a>:</a>&sn=0&ln=10" + "&so=cache&ud=debug:true,logger:file" + "&fl=id,title,img:30,price" + "&se={{{gd_nm:AND(마우스 피스):100}OR{brand,goodnm:OR(베트남 신혼 여행):1000}}AND{seller,kindnm:여행사:100}}NOT{seller:adult:100}" + "&gr=sellprice:freq:key_desc,goodkind:section_freq:5:freq_asc" + "&gc={price:1000:0}" + "&ra=_score_,price:asc,point:desc"; System.out.println(queryString); parser.parseQuery(queryString); } @Test public void test3() { Query query = new Query(); //String queryString = "{{{{Title:cc:200:15}AND{Title:aa:200:15}}AND{NOT{{{Title:bb:200:15}OR{Content:cc:100:15}}OR{Content2:cc:100:15}}}}}"; String queryString = "{test:cc}AND{NOT{test:bb}}"; //String queryString = "{test:cc}NOT{test:bb}"; QueryParser parser = QueryParser.getInstance(); Object obj = parser.makeClause(queryString); System.out.println(obj); } @Test public void test2() { /* * String queryString = "{" + " {" + " {" + " {Title:AND(aa):200:15}" + " OR" + " {Content,UserName:AND(aa2):100:15}" + " }" + " AND" + " {" + " {Title:AND(bb):200:15}" + " OR" + " {Content,UserName:AND(aa3):100:15}" + " }" + " }" + " NOT" + " {FirstCode:OR(010 012):100:15}" + " }";*/ // String queryString = "{{{Title,UserName:AND(한화그룹):100:15}AND{Title:(이대준)€:100:15}}NOT{FirstCode:OR(010 012):100:15}}"; // String queryString = "{{{{Title:AND(aa):200:15}OR{Content,UserName:AND(aa2):100:15}}AND{{Title:AND(bb):200:15}OR{Content,UserName:AND(aa3):100:15}}}NOT{FirstCode:OR(010 012):100:15}}"; Query query = new Query(); String queryString = "{{{{Title:cc:200:15}AND{Title:aa:200:15}}AND{{{Title:bb:200:15}OR{Content:cc:100:15}}OR{Content2:cc:100:15}}}}"; QueryParser parser = QueryParser.getInstance(); Object obj = parser.makeClause(queryString); System.out.println(obj); } }