2012-12-01 3 views
1

Google App Engine에서 문자열이 포함 된 문자열을 찾는 방법은 무엇입니까? 내 데이터 저장소에 '테스터'가 포함되어 있고 '추정치'를 전달하면 테스터가 반환되어야합니다. A collection of values is required필터를 사용하여 문자열을 포함하는 문자열을 일치시키는 방법 - Google App Engine

내가 제대로 필터를 사용하고 생각하지 않는다 :

Filter myFilter = new FilterPredicate("name",FilterOperator.IN, "est"); 

는하지만이 오류가 나타납니다.

+0

app 엔진에서 와일드 카드 검색을 수행 할 수없는 것 같습니다. http://stackoverflow.com/questions/1402769/wildcard -search-on-appengine-in-python –

답변

0

app 엔진이 와일드 카드를 지원하지 않더라도 가능한 모든 순차 조합을 데이터 저장소에 삽입하는 것이 좋습니다.

'd' 
'de' 
'des' 
'desi' 
'desig' 
'design' 
'e' 
'es' 
'esi' 
'esig' 
'esign' 
's' 
'si' 
'sig' 
'sign' 
'i' 
'ig' 
'ign' 
'g' 
'gn' 
'n' 

다음은 '디자인'에 와일드 카드 검색을위한 모든 가능한 조합입니다 : '디자인'

추가 다음과 같은 항목에 대한 와일드 카드 검색을하고 싶었다 그래서 경우

. 이것은 데이터 저장 메모리를 매우 낭비하지만.

1

설명 된 방식으로 IN 필터를 사용할 수 없습니다. IN은 문자열 목록을 제공하고 주어진 목록의 문자열 중 하나와 일치하려는 경우 작동합니다.

검색 API는 당신이 뭘하려는 건지 존재 : https://developers.google.com/appengine/docs/python/search/overview

그것은 검색보다 더/이하를 사용하여 문자열로 시작하는 문자열을 찾을 수 있어요,하지만 당신은을 사용해야합니다 문자열의 모든 부분에서 하위 문자열을 찾으려면 Search API를 사용하십시오.

0

문자열> = 및 <로 compaired 할 수 있기 때문에 = 당신은 조합을 저장할 수 :
디자인
디자인을 재미있게 다룬
N

가 '기호를 가진 모든 이름을 검색하려면
기호
IGN
GN '에 대한 검색어를 입력하면

이름> ='기호 'AND 이름 < ='기호 \ uffffd '

실질적으로 4 자리로 말하기 위해 조합 잘라 내기를 제한 할 수 있습니다. 소수의 사람들은 'n'을 포함한 모든 이름을 검색하기 위해 전체 결과 집합을 필요로 할 것입니다.