Google App Engine DataStore의 부정확 한 쿼리에 대한 좋은 패턴은 무엇입니까?
-
21-08-2019 - |
문제
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이지만 부분적 일치를 지원한다고 생각하지 않습니다.
다른 팁
Soundex를 저장할 수 있습니다 http://effbot.org/librarybook/soundex.htm 데이터 저장소의 이름 버전. 그런 다음 이름을 쿼리하려면 쿼리를 Soundex하여 찾아보십시오.
제휴하지 않습니다 StackOverflow