2012-01-29 3 views
0

안녕하세요, 내 첫 번째 grails 애플리케이션을 개발 중입니다. 이제 내 애플리케이션에 검색 방법을 넣을 수 있습니다. 입력 된 단일 키워드를 table.Like findById를 사용하는 경우와 같이 ID 만 검색하거나 findByName을 사용하는 경우 이름 또는 findByDescription에서만 설명을 찾습니다 .. findall 또는 findBy *를 사용하여 id와 같은 모든 필드와 일치시킬 수 있습니까? 당신이 RDBMS를 사용하는 경우테이블의 모든 필드로 입력 키워드를 검색하는 방법

+0

검색 가능한 플러그인을 확인하십시오. grails HSQLDB의 inbuild 데이터베이스를 사용하여 도메인 클래스 –

답변

0

, 이름, 설명 ..., 다음과 같은 라인에서 쿼리를 실행할 수 있습니다

SELECT .... FROM .... WHERE name like '%value%' OR description like '%value%' OR id like '%value%' 

그러나 이것은 매우 비효율적입니다. 대신 전체 텍스트 검색 API lucene/solr을 사용하고 하나의 필드의 일부로 전체 내용을 색인화하고 이에 대한 쿼리를 발행 할 수 있습니다.

+0

의 여러 필드를 검색하는 것이 훨씬 빠르고 더 빠릅니다. 그 쿼리를 사용하는 방법 ... – Shagul

+0

그리고 결과를 XML 형식으로 렌더링하고 싶습니다 (RESTful 애플리케이션이므로). idont가 검색 API를 사용할 수 있다고 생각합니다. 다른 방법으로도 동일한 작업을 수행 할 수 있습니까? – Shagul

+0

결과를 검색과 독립적으로 렌더링합니다. 물론 검색 후 데이터베이스를 다시 누르는 대신 lucene 인덱스의 일부로 사용자에게 표시하려는 모든 필드를 저장할 수 있습니다. – naresh

관련 문제