[MONGODB] MongoDB의 일치는 기본이되는 문자와 같은 문자를 악센트
MONGODBMongoDB의 일치는 기본이되는 문자와 같은 문자를 악센트
MongoDB의에서 "db.foo.find ()"구문은, 어떻게 모든 문자와 그 악센트 버전에 맞게 그것을 알 수 있습니까?
예를 들어, 내 데이터베이스에 이름 목록이있는 경우 : 주앙 프랑수아 예수
어떻게 문자열 "후앙", "프랑소와"또는 "예수"에 대한 검색 지정된 이름과 일치 할 수 있도록 것인가? 나는이 때마다 같은 검색을 할 필요가 없습니다 바라고 : db.names.find ({상품명 : /Fr[aã...][nñ][cç][all 문자 O를 강조] 모든 I 액센트 문자] S /})
해결법
-
==============================
1.MongoDB를 3.2으로, 당신은 $ 텍스트를 사용하고 false로 $ 발음 구별 민감한를 설정할 수 있습니다 :
MongoDB를 3.2으로, 당신은 $ 텍스트를 사용하고 false로 $ 발음 구별 민감한를 설정할 수 있습니다 :
{ $text: { $search: <string>, $language: <string>, $caseSensitive: <boolean>, $diacriticSensitive: <boolean> } }
몽고의 문서에서 더 많은 참조 : https://docs.mongodb.com/manual/reference/operator/query/text/
-
==============================
2.나는 예를 들어, 당신이 단순 문자열의 NameSearchable 같은 인덱스 필드를 추가 제안
나는 예를 들어, 당신이 단순 문자열의 NameSearchable 같은 인덱스 필드를 추가 제안
검색 할 때 데이터베이스에 새 항목을 삽입 할 때 사용되는 동일한 매핑을 사용할 수 있습니다. 케이싱 정확한 액센트 원래 문자열은 보존 될 것이다.
가장 중요한 것은, 쿼리는 인덱스를 사용할 수있다. 대소 문자를 구분하지 쿼리와 정규식 쿼리 (뿌리 정규식 등에서 특정 요소를 뽑아 오기 제외) 인덱스를 사용할 수없는 큰 컬렉션에 엄청나게 느리게 성장할 것입니다.
단순화 된 문자열이 원래 문자열을 만들 수 있습니다 아, 그리고 이후, 그것은 기존 컬렉션에이를 추가 할 수있는 문제가 아니다.
-
==============================
3.이 블로그에서 : http://tech.rgou.net/en/php/pesquisas-nao-sensiveis-ao-caso-e-acento-no-mongodb-e-php/
이 블로그에서 : http://tech.rgou.net/en/php/pesquisas-nao-sensiveis-ao-caso-e-acento-no-mongodb-e-php/
누군가가 당신이하려고 한 접근 방식을 사용했다. 이것은 지금까지 내가 최신 MongoDB의 버전에 대한 유일한 해결책을 알고있다.
-
==============================
4.그것은 더 MongoDB를 현재 지원하지 않는 퍼지 매칭 검색처럼 보인다. 당신이 시도 할 수 있습니다 것은 :
그것은 더 MongoDB를 현재 지원하지 않는 퍼지 매칭 검색처럼 보인다. 당신이 시도 할 수 있습니다 것은 :
/1. 각 항목에 대해 컬렉션에 별도의 요소 이름의 변화를 저장합니다. 그런 다음 쿼리는 검색 용어가 변화 배열 내에 존재하는 경우 찾아 실행할 수 있습니다.
또는
/ 2. 같은 컬렉션의 이름을 각각 저장 사운 덱스 문자열입니다. 그런 다음 검색 문자열를 들어, SOUNDEX 문자열을 얻고, 데이터베이스를 쿼리, 당신은 당신의 쿼리와 유사한 Soundex와 결과를 가지고 결과를 얻을 것이다. 필터링하고 스크립트에 더 많은 데이터를 확인할 수 있습니다. 예 :
프랑수아 = F652에 대한 SOUNDEX 코드, SOUNDEX 코드에 대한 프랑소와 = F652
예수 = J220 예수 = J220, SOUNDEX 코드에 대한 사운 덱스 코드
자세한 내용은 여기를 확인하십시오 http://creativyst.com/Doc/Articles/SoundEx1/SoundEx1.htm#SoundExConverter
from https://stackoverflow.com/questions/7707671/mongodb-match-accented-characters-as-underlying-character by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 $된다 / $ 문자열로 저장 관련 연산자 LT (0) | 2019.12.09 |
---|---|
[MONGODB] 몽구스 / MongoDB의 결과 필드는 자바 스크립트에서 정의되지 않은 나타납니다 (0) | 2019.12.09 |
[MONGODB] MongoDB를 별개의 기록을 얻을 (0) | 2019.12.09 |
[MONGODB] 배열 내에서 MongoDB를 이름 바꾸기 데이터베이스 필드 (0) | 2019.12.09 |
[MONGODB] MongoDB의 배열에서 특정 요소를 받기 [중복] (0) | 2019.12.09 |