SQLite가 매우 느리기 때문에 필요한 모든 레코드를 선택하고 배열에 저장합니다.SQL처럼 % LIKE %로 배열로 검색
이제 내 응용 프로그램에는 사용자가이 배열에서 문자열의 일부를 검색 할 수있는 검색 섹션이 있습니다.
내 배열 구조는 다음과 같습니다
[
{
name : 'Black',
family : 'Dragon',
email : '[email protected]'
}
]
나는 사용자가 일부 문자를 입력 할 수 있습니다 내 페이지에서 3 개 입력 필드를 가지고 있고이 배열에서 검색과 일치하는 값의 인덱스를 반환해야합니다.
예를 들어 사용자가 bla
또는 lack
또는 @blahblah
을 입력하면 내 프로그램에서이 값의 색인을 반환해야합니다.
가능합니까? 어떻게 일해야합니까?
당신은 각 객체를 반복하고 일치하는 값을 얻기 위해 각 필드에 대해 정규 표현식 (정규식)를 사용하거나 바퀴를 재발견하지 않으려면 [taffydb] (HTTP를 사용할 수해야합니다 : //www.taffydb.com/), JavaScript와 같은 데이터베이스 기능을 제공합니다. – frank
인덱스를 올바르게 설정했다면 SQLite는 대부분의 쿼리에서 일반적으로 매우 빠릅니다. (삽입은 또 다른 문제입니다.) 어떤 경우라도, 모든 레코드 (실제로 레코드의 수에 따라 빠름)를 스캔하지 않으려면 [인덱스] (http : //en.wikipedia.org/wiki/Search_engine_indexing#Index_data_structures). 정말 성능이 필요한 경우 접미사 트라이를 사용하는 것이 좋습니다. – Cameron
@ frank :'taffydb'는 인덱스를 지원하지 않으므로 (https://github.com/louischatriot/taffydb-benchmark), 레코드를 수동으로 스캔하는 것만 큼 빠르고 간단합니다. (정규 표현식 대신에'indexOf'를 사용하는 것이 일반적으로 더 빠르다). – Cameron