2012-10-23 1 views
2

Google App Engine으로 작업 해 왔습니다. 하위 문자열 검색 및 기타 몇 가지 작업에 문제가 있음을 발견했습니다. javax.jdo.Query는 필요에 따라 필터를 설정하는 옵션을 제공합니다. contains, inequality 연산자와 같은 몇 가지 필터를 사용할 수 있지만 필요에 맞는 필터를 찾을 수 없습니다.Google App Engine Datastore 엔티티에서 텍스트의 하위 문자열 검색

난 다음에 대한 방법을 찾을 수 없습니다입니다 : 어떻게 문자열에 대한

  1. 검색에 쿼리 필터를 설정하는
  2. 검색의 경우

를 무시하여 정규 표현식에 의해

  • 검색 위의 3 가지 작업 중 하나가 JDO에서 가능합니까?

  • 답변

    1

    App Engine에서 새로운 FTA에 대한 검색을 수행 했습니까? https://developers.google.com/appengine/docs/java/search/

    데이터 저장소에서 데이터의 색인을 만들어야하며 그런 다음 일부 와일드 카드를 사용하여 색인 된 문서를 검색 할 수 있습니다.

    그러나이 프로젝트는 잠시 실험적으로 보입니다.

    는 편집 :

    타 솔루션은 앱 엔진에 Backends ServiceWhoosh을 사용하는 것입니다. 그런 다음 웹 서비스를 만듭니다. urlfetch로 프론트 엔드에서 백엔드에 전화하십시오.

    +0

    이 링크를 이용해 주셔서 감사합니다. 계속 연락 할 것입니다. 그러나 실험적이므로 지금 당장 사용하지 마십시오. – abhijitsinghh

    +0

    다른 해결책은 Whoosh를 백엔드와 함께 사용하는 것입니다. – sahid

    2

    아니요, 인덱스에 만족할 수 없기 때문에 App Engine 데이터 저장소에서이를 사용할 수 없습니다. App Engine 데이터 저장소는 모든 항목을 검색해야하는 검색어를 실행하지 않습니다.

    첫 번째 옵션으로 전체 텍스트 검색이 원할 것입니다. 두 번째로는 좋은 해결책이 없습니다. 마지막으로 검색 할 데이터 스토어에 문자열의 하위 버전 또는 상위 버전을 저장하기 만하면됩니다.

    +2

    검색 API는 대소 문자를 구분하지 않으므로 1과 3을 해결할 수 있습니다. –

    +0

    전체 텍스트 검색을 사용하여 부분 문자열을 검색하려면 어떻게해야합니까? 값이 "banana"인'name' 속성을 가진'Document'가 있다고합시다. "ana"만 검색하면 해당 문서를 어떻게 쿼리합니까? – Korneel

    +0

    @Korneel 검색중인 문자열이 문서에서 단어의 줄기가있는 버전이 아니라면 그럴 수 없습니다. 왜 이걸하고 싶니? –