문제

GQL (Google App Engine DataStore Querying Language)은 "Like"또는 Case Insensitivity와 같은 부정한 운영자를 제공하지 않습니다. 하위 사례 버전의 필드를 저장하여 사례 민감한 문제를 해결할 수 있습니다. 그러나 사람을 찾고 싶지만 이름의 철자가 확실하지 않다면 어떻게해야합니까? 이 시나리오를 다루기위한 허용 패턴이 있습니까?

도움이 되었습니까?

해결책

문서에서 인용 :

팁 : 쿼리 필터는 문자열 값의 일부만 일치하는 명시적인 방법이 없지만 불평등 필터를 사용하여 접두사 일치를 속일 수 있습니다.

db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2", "abc", u"abc" + u"\ufffd")

이것은 모든 MyModel 엔티티와 일치하여 문자 ABC로 시작하는 문자열 속성 소품과 일치합니다. 유니 코드 문자열 u " ufffd"는 가능한 가장 큰 유니 코드 문자를 나타냅니다. 속성 값이 인덱스로 정렬되면이 범위에서 떨어지는 값은 주어진 접두사로 시작하는 모든 값입니다.

http://code.google.com/appengine/docs/python/datastore/queriesandindexes.html

또 다른 옵션은 SearchAbleModel이지만 부분적 일치를 지원한다고 생각하지 않습니다.

http://billkatz.com/2008/8/a-searchablemodel-for-app-engine

다른 팁

Soundex를 저장할 수 있습니다 http://effbot.org/librarybook/soundex.htm 데이터 저장소의 이름 버전. 그런 다음 이름을 쿼리하려면 쿼리를 Soundex하여 찾아보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top