Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XMLQueryParser에서 정규식 조건 구문 사용하기 #2415

Open
largeden opened this issue Oct 1, 2019 · 1 comment
Open

XMLQueryParser에서 정규식 조건 구문 사용하기 #2415

largeden opened this issue Oct 1, 2019 · 1 comment

Comments

@largeden
Copy link
Contributor

largeden commented Oct 1, 2019

안녕하세요. 가끔 기능이 아쉬워서 안타까운 마음에 그냥..
현재 이걸 굳이 집어넣을 이유는 없지만 혹시나 괜찮다고 보여지면 한번 검토해주십사 하는 마음에 의견 개진해봅니다.

XE는 하나의 컬럼을 복수개를 검색할 수 있는 in 구문이 있지만 복수개의 부분 검색(정규식)을 할 수 있는 구문은 지원하지 않습니다.

XE가 지원하는 데이터베이스에서 복수개를 부분 검색(정규식) 가능한 조건 문

/* mysql */ 
where REGEXP 'apple|berry|orange'
/* mssql */ 
where like 'apple|berry|orange'
/* cubrid */ 
where REGEXP | RLIKE 'apple|berry|orange'

예를 들어 REGEXP란 이름으로 xmlquery를 정의한다면 아래와 같이 정규식을 사용한 부분 검색이 가능할 것입니다.

$obj->s_title =  'apple|berry|orange';
<condition operation="REGEXP" column="title" var="s_title" />

XE에 조건 문을 추가하는 방법은 아래의 함수에 값을 정의하는 걸로 끝납니다.

/classes/db/queryparts/condition/Condition.class.php
show() getConditionPart()

특정 조건 문의 선언 값을 수정하려면 xmlquery의 아래 함수에서 제어 가능합니다.
(하지만 like '% %' 와 같은 수정은 필요없는 형태라서 REGEXP의 조건은 필요가 없습니다.)
/classes/xml/xmlquery/argument/ConditionArgument.class.php
createConditionValue()


위 기능이 추가가 되면 아래 같은 검색을 xmlquery로 가능해집니다.

  • 본문, 타이틀의 다중 검색
  • 확장변수 등의 다중 검색

지금으로썬 다중 부분 검색을 위해 아래와 같이 개발 해야합니다.

$obj->s_value1 =  'apple';
$obj->s_value2 =  'berry';
$obj->s_value3 =  'orange';
<condition operation="like" column="title" var="s_title1" />
<condition operation="like" column="title" var="s_title2" pipe="or" />
<condition operation="like" column="title" var="s_title3" pipe="or" />
@largeden
Copy link
Contributor Author

largeden commented Oct 1, 2019

오해가 있을 수 있어서..
다중 부분 검색이란 이야기는 아래와 같은 검색을 의미합니다.

https://www.google.com/search?q=apple+berry+orange&oq=apple+berry+orange&aqs=chrome..69i57j0.1411j0j7&sourceid=chrome&ie=UTF-8

@ghost ghost self-assigned this Oct 2, 2019
@ghost ghost removed their assignment Mar 14, 2020
@xpressengine xpressengine deleted a comment from kms0219kms Jan 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant