Hỏi về cách tìm một từ hoặc cụm từ trong cơ sở dữ liệu

Mình xin chào mọi người,

Mình đang làm một project nhỏ, bây giờ có yêu cầu thế này.
Input: Một bảng bài báo (có chứa nội dung bài báo), keyword là từ mà người dùng tìm kiếm
Output: trả về các bài báo có chứa keyword và một mảng chứa các dòng mà từ đó xuất hiện trong văn bản.
Ngày xưa thì tìm kiếm thì mình truy theo dạng tựa tựa thế này:

select * from baibao where noidung like '%keyword%'

Nhưng giờ phải trả về mảng chứa từ đó nằm ở các dòng nào thì mình chưa nghĩ ra cách nào tốt cả, lên tham khảo ý kiến mọi người và mong muốn được giúp đỡ.

Mình xin chân thành cảm ơn.

Thì “tự ra tay” thôi.
Viết bằng java à?
Tự viết phương thức tìm từ khóa và vị trí của nó.

3 Likes

Em cũng tính dùng vòng lặp for để tìm thôi, nhưng em mong muốn có một giải pháp tốt hơn

Nếu cho java xử lý hết thì cũng khổ. Lọc nó từ CSDL trước, giảm tải cho java. Chia sẻ “gánh nặng”. :kissing_smiling_eyes:
Lọc có thể là:

  • Lọc từ khóa, tuy nhiên CSDL không trả về vị trí, java sẽ làm, giảm tải việc nội dung hoàn toàn không chứa từ khóa.
  • Lọc theo ngày mới nhất,chủ đề,…, chỉ chọn lượng bài viết nhất định chứ không chọn hết.

:thinking:

4 Likes

ElasticSearch có chế độ highlight như bạn cần

4 Likes

Cũng là một hướng hay, cảm ơn bạn rất nhiều.

Chà cái này với mình là khái niệm mới, cảm ơn bạn mình ngâm cứu thử.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?