2014-06-12 5 views
3

위키 피 디아의 API에 본질적으로 검색 바를 구축하고 싶습니다. 사용자가 입력 한 문자열이 있으면 해당 검색 문자열과 가장 일치하는 위키피디아 페이지의 첫 번째 섹션을 반환해야합니다.MediaWiki가 쿼리 문자열과 가장 일치하는 항목을 반환합니다.

입력 한 제목이 정확하게 올바른 페이지 일 경우 완벽하게 작동하지만 오타가 있거나 비슷한 내용이 있으면 xml 파일을 내용없이 반환합니다. 예는 토목 공학의 페이지를 찾고있을 것 http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=TITLE_GOES_HERE&format=xml

:

내가 쿼리 사용하고있는 URL입니다. ( http://en.wikipedia.org/wiki/Civil_engineering)

위키 백과에서 토목 공학을 검색하면 문제가 없습니다. 내 URL로 검색하면 똑같은 일이 생깁니다 : http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=civil+engineering&format=xml

그런 다음 위키 백과에서 "civul engineering"에 검색 문자열을 잘못 입력하면 "해당 페이지가 없습니다 당신은 '토목 공학'을 의미합니까? "나는 적절한 페이지로 가기 위해 클릭 할 수 있습니다.

<api> 
    <query> 
     <normalized> 
      <n from="civul engineering" to="Civul engineering"/> 
     </normalized> 
     <pages> 
      <page ns="0" title="Civul engineering" missing=""/> 
     </pages> 
    </query> 
</api> 

더 제안 리디렉션 또는 아무것도 없습니다 : 내 쿼리 URL에 같은 실수를하는 경우 (http://en.wikipedia.org/w/index.php?search=civul+engineering&title=Special%3ASearch&go=Go)

그러나, 다음과 같은 XML을 반환합니다. 문자열과 정확하게 일치하는 결과가 아닌 가장 가까운 결과를 가져 오려면 어떻게해야합니까?

+1

내가 어떻게 여기에서했는지보십시오 : https://github.com/waldir/primerpedia/blob/gh-pages/primerpedia.js#L32 - 출발점으로 유용 할 수 있습니다 :) – waldyrious

답변

관련 문제