누군가 올바른 방향으로 나를 가리킬 수 있습니까? 나는 코드 작성 경험이 없지만 빠른 학습자입니다. 나는 그것이 쉬울 것이라고 말하려고하지는 않지만 누군가 나를 도울 수 있기를 바랍니다 ...
누군가 올바른 방향으로 나를 가리킬 수 있습니까? 나는 코드 작성 경험이 없지만 빠른 학습자입니다. 나는 그것이 쉬울 것이라고 말하려고하지는 않지만 누군가 나를 도울 수 있기를 바랍니다 ...
답변:
나는 다시 돌아 왔을 때 사용했던 블로그를 위해 이것을 썼다. .. 그것은 웹에서 더 이상 그렇게 .. 여기있다! :
검색 엔진을 작성하는 방법
probolgger.net의 Darren Rowse는 "방법"에 관한 그룹 작문 프로젝트를 진행하고 있습니다. 이것은 내가 정기적으로 읽는 몇 안되는 블로그 중 하나이므로 변경을 위해 읽을만한 가치가있는 글을 쓰지 않는 이유를 이해해야합니다.
"검색 엔진 작성 방법"을 작성하기로 결정했습니다. 두 가지 이유로이 주제를 선택했습니다.
내 고객은 상당한 규모의 온라인 소매 업체이므로 전체 웹 사이트 만, 더 구체적으로는 사이트에서 판매 할 제품 만 검색하지는 않습니다. 인터넷 검색에 사용되는 더 복잡한 기술을 작성하는 데 동일한 기술을 사용할 수는 없습니다. 나는 이것이 기술 블로그가 아니라는 것을 알고 있으므로 기술에 너무 깊이 들어 가지 않으며 하드웨어 처리 능력 요구 사항이나 웹 크롤링에 대해 논의하지 않을 것입니다.
상당히 간단한 기술을 사용하고 있으며 세 가지 필드가있는 테이블 (tblKeywords)이 있습니다.
가장 먼저해야 할 일은 관련있는 어느 곳에서나 개별 단어를 수집하는 것입니다. 내 고객을 위해 제품 테이블이라는 단어를 가져옵니다. 특히 Itemid, ItemName, ItemShortDescription, ItemLongDescription, Manufacturer, ManufacturerSKU, Category1, Category2, Category3 요법 필드에서. 웹 페이지를 인덱싱하는 경우 페이지 텍스트, 페이지 제목, URL 또는 인덱싱중인 페이지로 다시 연결되는 다른 페이지의 링크에서 데이터를 가져올 수 있습니다.
가중치는 키워드의 출처에 따라 결정됩니다. 예를 들어 필자의 경우 Item Manufacture의 SKU의 가중치는 100이고 항목 이름의 단어의 가중치는 25입니다. ItemLongDescription의 단어의 가중치는 5입니다. 웹 페이지를 인덱싱하는 경우 단어 페이지 제목에서 가중치는 75가 될 수 있지만 페이지 텍스트에서 굵은 글씨로 된 단어의 가중치는 10이 될 수 있습니다. 단어가 두 번 이상 또는 여러 곳에서 반복되는 경우 매번 가중치를 추가 할 수 있습니다. 발생합니다. 예를 들어 "Shirt"라는 단어가 ItemId = 12345에 대해 두 곳에서 온 경우 ItemName (무게 25)이고 ItemLongDescription (무게 5 x2 = 10)에 두 번 나타납니다. = 12345.
어떤 사람이 "핑크 셔츠"를 검색하면 "핑크"또는 "셔츠"라는 단어의 모든 인스턴스를 테이블에서 검색하고 가중치를 계산합니다. 총 중량이 가장 높은 품목을 맨 위에 표시합니다.
SQL :
Select Itemid, sum(weight) as totWeight from tblKeywords
group by itemId having keyword in ('pink','shirt')
기본 검색 엔진이 있습니다. 물론 문장 부호 제거, HTML 코드 및 "and", "if", "or"와 같은 쓸모없는 키워드와 같이해야 할 일이 더 있습니다. 주요 구문 검색은 다루지 않지만 문구의 시작 및 끝 위치를 알아낼 수 있으면 유사한 시스템을 사용할 수 있습니다.
검색 엔진은 웹 크롤러 를 기반으로 구축되므로 웹 사이트를 개발하여 결과를 표시하기 전에 이러한 빨판 중 하나를 구축하는 방법을 찾아야합니다 (빠르고 효율적인 데이터베이스가 필요함).
이 과정은 20 일에 시작하는 CS 입문 과정입니다. 무료로 제공되는 것이 좋습니다.