아포스트로피 검색을 사용하여 부분 문자열 일치 검색을 수행 할 수있는 설정 (또는 스 니펫)이 있습니까? 예 : "blue"를 검색하면 "Learning Management Blueprint"라는 제목의 항목이 반환됩니다.부분 문자열 검색
답변
: 경우 다른 사람이 필요에서, 여기에 관련 LIB \ 모듈 \ 아포스트로피 검색 \의하는 index.js 코드입니다.
당신의 해결책은 효과가 있지만, 심각한 우려 사항 중 하나는 .
및 *
과 같은 정규 표현식 메타 문자가 그 것으로 해석되지 않도록 사용자의 입력을 피하지 못하는 것입니다. 이를 위해 apos.utils.regExpQuote(s)
을 사용하면 위험 문자가 포함 된 문자열을 \
을 통해 이스케이프 처리합니다.
더 나은 방법이 있습니다 : 대신 req.query.autocomplete
을 사용하십시오. 아포스트로피에는 autocomplete
커서 필터가 search
필터와 다르게 작동합니다. autocomplete
필터는 부분 일치를 허용하지만 (단어 시작 부분에만 있음) 단어를 찾은 단어는 일반 search
을 통해 전달되므로 결과는 여전히 일치 품질에 따라 정렬됩니다. 또한 search
을 사용하여 많은 성능 이점을 유지합니다.
당신과 같은 정규 표현식 검색은 mongodb 컬렉션 전체 (적어도 해당 유형의 모든 문서)를 검색하므로 내용이 많은 경우 성능 문제가 발생할 수 있습니다.
autocomplete
한 가지주의해야 할 점은 그것이 단지 등의 제목, 태그, 같은 우선 순위가 높은 분야의 단어 그것은 문서 방식의 전체 텍스트를 볼 수 없습니다 "본다"고 귀하의 정규식 검색 (또는 search
필터) 수 . 이것은 성능을 유지하기 위해 필요한 절충안이었습니다. "블루"의 부분 문자열을 검색하는 내 테스트에서
RegExp를 추가하는 것처럼 보이는 것이 필요합니다. 당신은 내가 P'unk 번가에서 아포스트로피의 리드 개발자입니다 알다시피
module.exports = {
perPage: 15,
construct: function(self, options) {
self.indexPage = function(req, callback) {
req.query.search = req.query.search || req.query.q;
var allowedTypes;
var defaultingToAll = false;
var cursor = self.apos.docs.find(req, { lowSearchText: new RegExp(req.query.search, 'i') })
.perPage(self.perPage);
if (self.filters) {
var filterTypes = _.filter(
_.pluck(self.filters, 'name'),
function(name) {
return name !== '__else';
}
);
- 1. 문자열 내부에서 부분 문자열 검색
- 2. 검색 부분 문자열
- 3. 문자열 목록에서 부분 검색
- 4. 최대 부분 문자열 검색
- 5. lucene에서 부분 문자열 검색
- 6. php - 특정 부분 문자열 검색
- 7. 콘텐츠 공급자의 문자열 부분 검색
- 8. C++ : 이진 검색 문자열 부분
- 9. 문자열이 같거나 부분 문자열 검색
- 10. 정규 표현식을 사용하여 부분 문자열 검색 문자열
- 11. 부분 일치 부분 문자열
- 12. 문자열에서 16 진수 부분 문자열 검색
- 13. ilike를 사용하여 Ecto에서 부분 문자열 검색
- 14. 전체 또는 부분 문자열 - 검색 기능
- 15. 위치가 변경되지 않은 탄성 검색 부분 문자열
- 16. Ruby grep - 배열의 문자열 부분 검색
- 17. MySQL 데이터베이스 검색 문자열 - 부분 단어
- 18. 튜플 내에서 튜플을 통해 부분 문자열 검색
- 19. 파일 bash에서 부분 문자열 일치 검색
- 20. Solr - 주어진 문자열의 모든 부분 문자열 검색
- 21. 문자열을 사용하여 부분 문자열 검색 :: reverse_iterator
- 22. python에서 regex를 사용하여 부분 문자열 검색
- 23. bash에서 문자열 부분 검색 및 에코 문자
- 24. 큰 문자열에서 부분 문자열 검색 R
- 25. 검색 방법을 사용하여 부분 문자열 인쇄
- 26. 문자열 목록에서 부분 문자열 찾기
- 27. 바운드 문자열 부분 문자열
- 28. 부분 문자열 문자열 배열
- 29. 문자열 문자열 부분 추출하기
- 30. 부분 문자열 알고리즘
이 작동합니다 var에 커서 = self.apos.docs.find (REQ, { lowSearchText :/블루/ } ) 그러나이에게 변수를 만들기 하지 않습니다. 이것은 동등하고 작동하지 않아야합니까? var searchText = 'blue'; var cursor = self.apos.docs.find (req, { lowSearchText : searchText } ) –