2010-12-29 8 views
4

Match에서 찾은 위치/색인을 사용하고 싶습니다. mysql의 전체 텍스트 검색에서 필드의 일치 전후에 텍스트를 반환합니다. 이것이 가능한가? 필자가 보았던 모든 예제에서 Match ... Against는 텍스트 필드의 위치 나 위치 대신 검색 대상에있는 점수를 반환합니다.MySQL 전체 텍스트 검색은 점수 대신 색인 (위치)을 반환 할 수 있습니까?

SELECT 
    random_field, 
    MATCH ($search_fields) 
    AGAINST ('".mysql_real_escape_string(trim($keywords))."' IN BOOLEAN MODE) 
     AS score 
FROM indexed_sites 
WHERE 
    MATCH ($search_fields) 
    AGAINST ('".mysql_real_escape_string($keywords)."' IN BOOLEAN MODE) 
ORDER BY score DESC; 

이것은 제가 필드와 점수를 줄 것입니다 ...하지만 점수 대신 (또는 측면을 따라) 색인을 원합니다.

답변

1

전체 텍스트 검색은 채점 기능입니다. 그것은 발생 함수에 대한 검색이 아닙니다. 즉, 가장 높은 득점 결과는 경기의 시작 위치가 아닐 수도 있습니다. 텍스트 내에서 다른 일치의 가중 결과의 조합 일 수 있습니다. 검색어 확장을 포함하면 단어/s에 대한 검색 결과에 나타나지 않을 수도 있습니다! http://dev.mysql.com/doc/refman/5.0/en/fulltext-query-expansion.html

나는 약간의 의미가 있기를 바랍니다.

어쨌든 최선의 방법은 결과를 가져온 다음 텍스트 검색 기능을 사용하여 첫 번째로 일치하는 단어가 처음 나타나는 것을 찾는 것입니다. 내 생각 엔 펄이나 PHP와 같은 일반 언어 나 쿼리를 실행하기 위해 사용하는 언어와 같은 텍스트 처리 언어에 가장 적합하다고 생각합니다.

DC