2016-08-18 3 views
0

웹 페이지에서 검색 기능을 생성해야한다는 요구 사항이 있습니다. 필터링 할 필드는 from date - to date, first money value - second money value이며 미리 정의 된 값과 자유 텍스트가있는 드롭 다운입니다.SQL Server에서 엄청난 양의 데이터를 검색하고 MVC 뷰에서 매 개진하는 방법은 무엇입니까?

데이터베이스는 Sql Server이고 CMS는 Umbraco입니다. 나는 최선의 해결책을 찾고 있지만 불행히도 아직 발견하지 못했습니다!

  • 나는 이런 Elasticsearch, Lucene 및 다른 플랫폼을 모색했지만, 내가는 SQL Server의 Full Text Search를 사용하기 때문에 그들은 나의 요구에 맞게하지 않습니다.

  • SQL Server에서 Full Text Search을 지원하지 않으므로이 경우 엔티티가 좋지 않습니다. 그럴만 한 트릭이 있지만 기본적으로 같은 것은 아닙니다 ...

  • 사용자가 입력 한 입력란에 따라 동적 쿼리를 만들려고했으나 일부 ​​사람들은 큰 데이터를위한 좋은 해결책이 아니라고 말합니다.

  • 또 다른 해결책은 응용 프로그램 측면에서 쿼리를 동적으로 작성한 다음 실행하는 것입니다.이 방법이 충분한 지 확실하지 않습니다.

  • 큰보기를 만드는 것은 일부 기사에서 읽었던 것처럼 성능이 저하 될 수 있으므로 해결 방법이 아닙니다.

는 사람이 (물론 쿼리가 동적 만들기)과 필요에 검색된 데이터가보기에서 페이지 매김하는 매개 변수를 동적 엄청난 양의 데이터를 검색하기위한 좋은 솔루션을 구현 했습니까? 누군가가 나에게 페이지 매김을 만드는 방법에 대한 정보를 조금이라도 주면 고마움을 느낀다 MVC 또는 Umbraco

데이터베이스는 수백만 개의 레코드가 될 수 있으며 페이지 매김은 서버 측에 있어야한다.

모든 물건을 다음 '서버 사이드'를 말할 때 C#을

+0

이 페이지 매기기에 당신은 다음을 ROWS ONLY을 FETCH 이 행을 OFFSET 에 의해

ORDER에서 선택한 다음 쿼리 *를 사용할 수 있습니다.전체 데이터를로드하는 대신 약 50 개의 행을로드하고 페이지 매김을 수행합니다. – Mani

+0

페이지 매김을 추가하기 전에 데이터를 필터링해야하므로 도움이되지 않습니다. –

+0

제안을 주셔서 감사합니다. @Mani 그러나 필터링 쿼리 또는 최상의 구현을 검색하는 방법 데이터를 먼저 입력 한 다음 제안을 사용할 수 있습니다. –

답변

1

Elasticsearch 또는 Lucene을 사용하는 방법 몇 가지 정보와 함께 이메일에 회신 해 주시기 바랍니다 수 있도록 서버 측에서 더 좋은 방법이없는 경우, 당신은 SQL을 의미 가정 서버 ... 쿼리해야 할 데이터가 Umbraco에서 작성된 것이라면, & 버전 관리를 처리하기위한 로직을 다시 작성해야하므로 Umbraco의 데이터 액세스 레이어를 데이터베이스에서 직접 읽지 않아도됩니다.

Umbraco는 내부 검색을 제공하기 위해 Examine (Lucene을 기반으로 작성 됨)을 사용하며 사용자가 직접 만들 수 있도록 구성 할 수 있습니다.

검사 문서는 here이며 도움이되는 시작 안내서는 here입니다.