F3에서 이와 비슷한 대답을 어떻게 사용합니까?전체 텍스트 검색 및 점수 정렬 MongoDB
php mongodb full-text search and sort
편집 : 나는 제목과 설명에서 검색하고 있습니다. searchterm이 없으면 필드에 정렬됩니다 created_at
. 이 인 경우 검색 : 그러나 관련성이 가장 높은 항목을 정렬하십시오.
편집 : 편집 : 페이지 매김 플러그인도 중요합니다.
F3에서 이와 비슷한 대답을 어떻게 사용합니까?전체 텍스트 검색 및 점수 정렬 MongoDB
php mongodb full-text search and sort
편집 : 나는 제목과 설명에서 검색하고 있습니다. searchterm이 없으면 필드에 정렬됩니다 created_at
. 이 인 경우 검색 : 그러나 관련성이 가장 높은 항목을 정렬하십시오.
편집 : 편집 : 페이지 매김 플러그인도 중요합니다.
을, 당신은 할 수 있습니다 score
이라는 투영 된 필드를 정의하고이를 정렬에 사용하십시오.
예컨대 :
// MongoDB instance
$db=new DB\Mongo('localhost:27017','mydb');
// Define a `score` field here
$fields=['score'=>['$meta'=>'textScore']];
// Mapper instance
$mapper=new DB\Mongo\Mapper($db,'mycollection',$fields);
// Search text and sort by score
$mapper->load(
['$text'=>['$search'=>'search text']],
['order'=>['score'=>['$meta'=>'textScore']]]
);
[Pagination] (https://github.com/ikkez/F3-Sugar/tree/master-v3/Pagination)에서 어떻게 사용합니까? – anned20
음, [docs] (https://github.com/ikkez/F3-Sugar/tree/master-v3/Pagination#3-paginate-your-records)에서 인용 :'$ subset = $ mapper-> paginate ($ page-1, $ limit, $ filter, $ options);'. '$ '=' '$'=> '검색 텍스트']]'와'$ options = [ 'order'=> [ 'score'=> [ '$ meta'=> 'textScore ']]]'. – xfra35
고마워요! 내가 집에 갈 때 시도 할 것이다. 보이는 유망! – anned20
사용 aggregation framework, 점수 필드를 투영하는 $project
운영자 파이프 라인 다음에 검색어와 일치하는 $match
파이프 라인 작업을 수행하여 대부분의 관련 텍스트 점수를 가지고있는 문서를 얻기 위해 다음 대부분의 관련 항목을 반환하려면 다른 $order
파이프 라인 작업을 수행하십시오. 은 "textScore"metadata 이후의 전망, 종류 및 조건 $text
동작을 포함하는 $match
스테이지로 볼 수 있습니다 : 프레임 워크의 edge 버전을 사용
db.collection.aggregate([
{
"$match": {
"$text": {
"$search": "search text"
}
}
},
{
"$project": {
"_id": 0,
"score": {
"$meta": "textScore"
}
}
},
{
"$orderby": {
"score" : -1
}
}
])
답변 해 주셔서 감사합니다! 나는 이것을 이렇게 사용하는 방법을 안다. 내 질문은 : 어떻게 이것을 Fat Free Framework에서 사용합니까? 도움을 주셔서 감사합니다. – anned20
봅니다 S.I @ .. –
을 조금 더 설명합니다. 제목과 설명을 찾고 있습니다. searchterm이 없다면'created_at' 필드를 정렬 할 것입니다. _ ** ** searchterm 인 경우 : 가장 관련성이 높은 항목을 정렬하십시오. – anned20
"가장 관련성이 높은"을 정의하십시오. 채점은 어디서나 똑같은 것은 아닙니다. –