책에 대한 사용자 입력이 많은 varchar (1000) 필드가있는 테이블이 하나있는 SQL Server 2008 데이터베이스가 있습니다. 여러 개의 키워드가 들어있는 다른 표가 있습니다. 책에 대한 사용자 정보를 렌더링 할 때이 키워드에 강조 표시 (또는 결국 하이퍼 링크를 작성)하고 싶습니다. 나는 텍스트를 스캔하고 키워드를 일치시키는 가장 효율적인 방법에 대한 제안을 찾고있다. SQL에서 올바르게 처리 할 방법이 있는지 또는 코드에 있어야하는지는 확실하지 않았습니다. 감사.텍스트의 키워드 강조 표시
4
A
답변
0
코드에서 수행하는 것이 좋습니다. 그것은 비즈니스 로직이기 때문에 데이터베이스의 부하를 줄여줍니다. 따라서 데이터베이스가 앱을 실행하는 서버가 아닌 다른 머신에 있다면 그 머신의 리소스를 차지하지 않아도됩니다.
저는 정규식이 당신에게 트릭을 제공 할 것이라고 생각합니다. 이것은 가장 효과적인 텍스트 매칭 방법이며, 대부분의 기술 (.NET뿐만 아니라)의 내부 구현은 얻을 수있는 최선의 방법입니다. 당신이 다른 것을 생각해 내려고한다면 당신은 기껏해야 그 바퀴를 재발 명하게 될 것입니다.
나는 이렇게 할 것입니다. 해시 테이블이나 사전에 모든 키워드를 넣으십시오 - 중복을 제거하는 보너스가 있습니다. 그런 다음이를 반복합니다. 그런 다음 본문에있는 키워드의 각 일치 항목에 대해 일치 항목의 첫 번째 및 마지막 색인을 가져 와서 하이라이트 및 링크에 대한 마크 업으로 마무리 할 수 있습니다.
0
다음은 키에 일치하는 사전 값이있는 문자열의 값을 바꿀 빠른 LINQPad 프로그램입니다. 이것이 당신이 찾고있는 것이라면 알려주십시오.
사이드 노트 : 여러 가지 이유로 응용 프로그램 계층에서이 작업을 수행해야한다는 데 동의합니다.
void Main()
{
Dictionary<string, string> links = new Dictionary<string, string>();
links.Add("awesome", "link-to-awesome");
links.Add("okay", "link-to-okay");
string text = "This is some text about an okay book review of an otherwise awesome book.";
string result = links.Aggregate(text, (current, kvp) => current.Replace(kvp.Key, kvp.Value));
text.Dump();
result.Dump();
}
결과 :
This is some text about an okay book review of an otherwise awesome book.
This is some text about an link-to-okay book review of an otherwise link-to-awesome book.
편집 : 이것은 완벽한 예 아니다. 구두점을 없애고 최종 버전을 작성해야합니다. 바라기를 이것은 바른 길에 당신을 얻는다.
0
링크가 고정되어있는 경우 개인적으로 DB에 쓰기 만하면됩니다. 한 번만 수행되므로 표시 할 필요가 없습니다.
관련 문제
- 1. 강조 표시 키워드
- 2. 강조 표시 검색 키워드
- 3. 강조 표시된 문자가 강조 표시된 키워드 강조 표시
- 4. 검색 결과의 키워드 강조 표시
- 5. 주어진 검색 텍스트에서 키워드 강조 표시
- 6. PHP 검색 스크립트의 키워드 강조 표시
- 7. JavaScript를 사용하여 결과에서 검색 키워드 강조 표시
- 8. Visual Studio 2008의 선택시 키워드 강조 표시
- 9. 주어진 문자열에서 여러 키워드 강조 표시
- 10. 주어진 문자열에서 색상이있는 여러 키워드 강조 표시
- 11. Java에서 키워드 강조 표시 문제 (System.out 사용)
- 12. Vim에 콜론으로 시작하는 키워드 강조 표시
- 13. 댓글에서 Visual Studio 키워드 강조 표시
- 14. 웹 페이지의 자동 키워드 강조 표시
- 15. PDF 위의 이미지/아래 텍스트의 강조 표시
- 16. 서브 텍스트의 정규식과 일치하는 라인 강조 표시
- 17. php로 텍스트의 문구 비교 및 강조 표시
- 18. RichEdit에서 선택한 텍스트의 강조 표시 색 변경
- 19. 돋보이는 텍스트의 채색 강조
- 20. 구문 강조 표시 키워드 사용자 지정 목록 사용하여 텍스트
- 21. 검색 결과에 강조 키워드 php
- 22. 강조 표시된 텍스트의 인덱스 찾기
- 23. 텍스트의 값을 검색하고 강조 표시합니다.
- 24. Visual C++에서 "event"키워드 강조 표시 해제
- 25. 플렉스 4 - TextLine을 사용하여 텍스트 블록에서 키워드 강조 표시
- 26. Codemirror - 구문 강조 표시 파일에 새 키워드 추가
- 27. "at", "in", "on"을 허용하는 문자열의 키워드 강조 표시
- 28. 강조 표시 할 때 텍스트의 기존 배경색을 제거하는 방법은 무엇입니까?
- 29. Java 강조 표시 문제
- 30. Emacs가 구문 키워드 쌍을 강조 표시하게하십시오
사용자가 입력 한 키워드가 마스터 키 테이블에 대한 외래 키입니까? 두 테이블의 스키마는 무엇입니까? –
1) foreach 문자열 배열에 [book에 대한 사용자 입력]을 입력하십시오. 2) 각 문자열을 키워드와 비교하여 하이퍼 링크로 렌더링하십시오. 3) 분석 결과의 응답 시간을 확인하십시오 –
코드를 통해서만 수행해야합니다. 오히려 SQL .. – Mudassir