diff --git a/src/Components/SearchExpansionPanel/SearchEPCompCurriculum.js b/src/Components/SearchExpansionPanel/SearchEPCompCurriculum.js
index d55d6e63579e5b74ff3e57e09469478edcc654b8..fef89eecf3a754b14304a4ad97a9c0ae29a49eb4 100644
--- a/src/Components/SearchExpansionPanel/SearchEPCompCurriculum.js
+++ b/src/Components/SearchExpansionPanel/SearchEPCompCurriculum.js
@@ -17,7 +17,7 @@ const useStyles = makeStyles(theme => ({
   }
 }));
 
-export default function SearchEPCompCurriculum() {
+export default function SearchEPCompCurriculum(props) {
   const classes = useStyles();
   const [checked, setChecked] = React.useState([0]);
 
@@ -31,7 +31,16 @@ export default function SearchEPCompCurriculum() {
       newChecked.splice(currentIndex, 1);
     }
 
+    let filterString = ""; 
+
     setChecked(newChecked);
+    for(let i = 0; i < newChecked.length; i++){
+      if(newChecked[i] != 0){
+        filterString = filterString + `&subjects[]=${newChecked[i]}` 
+        console.log(filterString)
+      }
+    }
+    props.onChange("LearningObject", filterString)
   };
   const filtrosComponente = [
     { exemplo: "Arte", value: "3" },
diff --git a/src/Components/SearchExpansionPanel/SearchEPIdiomas.js b/src/Components/SearchExpansionPanel/SearchEPIdiomas.js
index a9426aec66f0c41fca8c30a99cab47f81591dd4e..73d04d57a93a57983d820d3a48ac5cc21dff8d13 100644
--- a/src/Components/SearchExpansionPanel/SearchEPIdiomas.js
+++ b/src/Components/SearchExpansionPanel/SearchEPIdiomas.js
@@ -17,7 +17,7 @@ const useStyles = makeStyles(theme => ({
   }
 }));
 
-export default function SearchEPIdiomas() {
+export default function SearchEPIdiomas(props) {
   const classes = useStyles();
   const [checked, setChecked] = React.useState([0]);
 
@@ -32,6 +32,15 @@ export default function SearchEPIdiomas() {
     }
 
     setChecked(newChecked);
+    let filterString = "";
+    
+    for(let i = 0; i < newChecked.length; i++){
+      if(newChecked[i] != 0){
+        filterString = filterString + `&languages[]=${newChecked[i]}` 
+        console.log(filterString)
+      }
+    }
+    props.onChange("LearningObject", filterString)
   };
   const filtrosIdiomas = [
     { value: "5", exemplo: "Alemão" },
diff --git a/src/Components/SearchExpansionPanel/SearchEPTiposRec.js b/src/Components/SearchExpansionPanel/SearchEPTiposRec.js
index 0d36afff0599d418b38b9c03592afb0615046352..e1a3f999fe4781aa6546fb6d3961a3400af25fc3 100644
--- a/src/Components/SearchExpansionPanel/SearchEPTiposRec.js
+++ b/src/Components/SearchExpansionPanel/SearchEPTiposRec.js
@@ -17,7 +17,7 @@ const useStyles = makeStyles(theme => ({
   }
 }));
 
-export default function SearchEPTiposRec() {
+export default function SearchEPTiposRec(props) {
   const classes = useStyles();
   const [checked, setChecked] = React.useState([0]);
 
@@ -31,7 +31,16 @@ export default function SearchEPTiposRec() {
       newChecked.splice(currentIndex, 1);
     }
 
+    let filterString = ""; 
+
     setChecked(newChecked);
+    for(let i = 0; i < newChecked.length; i++){
+      if(newChecked[i] != 0){
+        filterString = filterString + `&object_types[]=${newChecked[i]}` 
+        console.log(filterString)
+      }
+    }
+    props.onChange("LearningObject", filterString)
   };
   const filtrosTipos = [
     { value: "5", exemplo: "Animação" },
diff --git a/src/Components/SearchExpansionPanel/SearchExpansionPanel.js b/src/Components/SearchExpansionPanel/SearchExpansionPanel.js
index 32c9b72eb11b94bbea425e674aff8168e9718c0b..882885054592449f480c5336ee4673c7bb3fb890 100644
--- a/src/Components/SearchExpansionPanel/SearchExpansionPanel.js
+++ b/src/Components/SearchExpansionPanel/SearchExpansionPanel.js
@@ -62,7 +62,7 @@ const ExpansionPanelDetails = withStyles(theme => ({
   }
 }))(MuiExpansionPanelDetails);
 
-export default function SearchExpansionPanel() {
+export default function SearchExpansionPanel(props) {
   return (
     <div>
       <link
@@ -86,6 +86,7 @@ export default function SearchExpansionPanel() {
           </Typography>
         </ExpansionPanelSummary>
       </ExpansionPanel>
+
       <ExpansionPanel square>
         <ExpansionPanelSummary
           expandIcon ={<ExpandMoreIcon/>}
@@ -97,10 +98,11 @@ export default function SearchExpansionPanel() {
         </ExpansionPanelSummary>
         <ExpansionPanelDetails>
           <Typography>
-            <SearchEPCompCurriculum />
+            <SearchEPCompCurriculum onChange={props.onChange}/>
           </Typography>
         </ExpansionPanelDetails>
       </ExpansionPanel>
+
       <ExpansionPanel square>
         <ExpansionPanelSummary
           expandIcon={<ExpandMoreIcon />}
@@ -110,9 +112,10 @@ export default function SearchExpansionPanel() {
           <Typography>Tipos de Recurso</Typography>
         </ExpansionPanelSummary>
         <ExpansionPanelDetails>
-          <SearchEPTiposRec />
+          <SearchEPTiposRec onChange={props.onChange}/>
         </ExpansionPanelDetails>
       </ExpansionPanel>
+
       <ExpansionPanel square>
         <ExpansionPanelSummary
           aria-controls="panel4d-content"
@@ -122,9 +125,10 @@ export default function SearchExpansionPanel() {
           <Typography>Etapas de Ensino</Typography>
         </ExpansionPanelSummary>
         <ExpansionPanelDetails>
-          <SearchEPEtapasEns />
+          <SearchEPEtapasEns onChange={props.onChange}/>
         </ExpansionPanelDetails>
       </ExpansionPanel>
+
       <ExpansionPanel square>
         <ExpansionPanelSummary
           aria-controls="panel5d-content"
@@ -134,9 +138,10 @@ export default function SearchExpansionPanel() {
           <Typography>Idiomas</Typography>
         </ExpansionPanelSummary>
         <ExpansionPanelDetails>
-          <SearchEPIdiomas />
+          <SearchEPIdiomas onChange={props.onChange}/>
         </ExpansionPanelDetails>
       </ExpansionPanel>
+
       <ExpansionPanel square>
         <ExpansionPanelSummary
           aria-controls="panel6d-content"
diff --git a/src/Components/SearchExpansionPanel/SesrchEPEtapasEns.js b/src/Components/SearchExpansionPanel/SesrchEPEtapasEns.js
index b0241d3221d414adcde34ed7fb60afa2467ea421..022398b7c5a39755d4e9d6786c285f631c3fd8e3 100644
--- a/src/Components/SearchExpansionPanel/SesrchEPEtapasEns.js
+++ b/src/Components/SearchExpansionPanel/SesrchEPEtapasEns.js
@@ -17,7 +17,7 @@ const useStyles = makeStyles(theme => ({
   }
 }));
 
-export default function SearchEPEtapasEns() {
+export default function SearchEPEtapasEns(props) {
   const classes = useStyles();
   const [checked, setChecked] = React.useState([0]);
 
@@ -32,6 +32,15 @@ export default function SearchEPEtapasEns() {
     }
 
     setChecked(newChecked);
+    let filterString = "";
+
+    for(let i = 0; i < newChecked.length; i++){
+      if(newChecked[i] != 0){
+        filterString = filterString + `&educational_stages[]=${newChecked[i]}` 
+        console.log(filterString)
+      }
+    }
+    props.onChange("LearningObject", filterString)
   };
   const filtrosEtapas = [
     { value: "1", exemplo: "Educação Infantil" },
diff --git a/src/Pages/Search.js b/src/Pages/Search.js
index bdf155c21ff1c85dae5f1f9b04bcd319770e170e..2902b2b51496b1ae179d3a668a21527a35eb1b62 100644
--- a/src/Pages/Search.js
+++ b/src/Pages/Search.js
@@ -18,11 +18,11 @@ along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>
 
 import React, { useEffect, useState, useContext } from "react";
 import axios from "axios";
-import {apiDomain} from '../env';
+import { apiDomain } from '../env';
 import { Link } from "react-router-dom";
 import styled from "styled-components";
 import Paper from "@material-ui/core/Paper";
-
+import LoadingSpinner from '../Components/LoadingSpinner'; 
 // import ResourceCard from '../Components/ResourceCard'
 // import CollectionCard from '../Components/CollectionCard'
 // import UserCard from '../Components/UserCard'
@@ -39,26 +39,30 @@ import ResourceCardFunction from "../Components/ResourceCardFunction";
 import CollectionCardFunction from "../Components/CollectionCardFunction";
 import ContactCard from "../Components/ContactCard";
 
+let order = "review_average"; 
+let currFilter = "";
+
 export default function Search(props) {
   const { state, dispatch } = useContext(Store);
   const [resultsResource, setResultsResource] = useState([]);
   const [resultsCollection, setResultsCollection] = useState([]);
   const [resultsUser, setResultsUser] = useState([]);
   const [page] = useState(0);
+  const [isloading, setIsLoading] = useState(false); 
   const [resultsPerPage, setResultsPerPage] = useState(6);
-  const [order] = useState("score");
+  const [totalResults, setTotalResults] = useState(0);
   const [options] = React.useState([
     { label: "Recursos", value: "LearningObject" },
     { label: "Coleções", value: "Collection" },
     { label: "Usuários", value: "User" },
   ]);
   const [ordenar] = useState([
-    { label: "Mais Estrelas" },
-    { label: "Mais Relevante" },
-    { label: "Mais Baixados" },
-    { label: "Mais Favoritados" },
-    { label: "Mais Recentes" },
-    { label: "Ordem Alfabética" },
+    { label: "Mais Estrelas",     value: "review_average" },
+    { label: "Mais Relevante",    value: "score" },
+    { label: "Mais Baixados",     value: "downloads" },
+    { label: "Mais Favoritados",  value: "likes" },
+    { label: "Mais Recentes",     value: "publicationdesc"  },
+    { label: "Ordem Alfabética",  value: "title" },
   ]);
 
   const [option, setOption] = useState(
@@ -68,20 +72,21 @@ export default function Search(props) {
   console.log(option);
   console.log(state.search.class);
 
-  const collectStuff = (tipoBusca) => {
-    console.log(tipoBusca);
-
+  const collectStuff = (tipoBusca, filtro) => {
+    setIsLoading(true);
+    if(filtro || filtro == "") 
+      currFilter = filtro;
     axios
       .get(
-        `${apiUrl}/search?page=${page}&results_per_page=${resultsPerPage}&order=${order}&query=${state.search.query}&search_class=${tipoBusca}`
+        `${apiUrl}/search?page=${page}&results_per_page=${resultsPerPage}&order=${order}&query=${state.search.query}${currFilter ? currFilter : ""}&search_class=${tipoBusca}`
       )
       .then((res) => {
         if (tipoBusca === "LearningObject") setResultsResource(res.data);
         else if (tipoBusca === "Collection") setResultsCollection(res.data);
         else if (tipoBusca === "User") setResultsUser(res.data);
         setOptionResult(tipoBusca);
-        console.log(res.data);
-        console.log(tipoBusca);
+        setTotalResults(res.headers["x-total-count"]);
+        setIsLoading(false);
       });
   };
 
@@ -169,21 +174,14 @@ export default function Search(props) {
                 <span style={{ alignSelf: "center", marginRight: 10 }}>
                   MOSTRAR:
                 </span>
-                <Select
-                  style={{ backgroundColor: "transparent", border: "none" }}
-                  value={option}
+                <Dropdown
+                  options={options}
                   onChange={(e) => {
-                    console.log(e.currentTarget.value);
-                    setOption(e.currentTarget.value);
-                    collectStuff(e.currentTarget.value);
+                    setOption(e.value);
+                    collectStuff(e.value, "");
                   }}
-                >
-                  {options.map((item) => (
-                    <option key={item.value} value={item.value}>
-                      {item.label}
-                    </option>
-                  ))}
-                </Select>
+                  placeholder="Select an type"
+                />
               </div>
             </Grid>
             <Grid
@@ -195,7 +193,9 @@ export default function Search(props) {
                 justifyContent: "center",
               }}
             >
-              <div>Número</div>
+              <div>
+                Resultados encontrados: {totalResults}
+              </div>
             </Grid>
             <Grid
               item
@@ -225,8 +225,9 @@ export default function Search(props) {
                 </span>
                 <Dropdown
                   options={ordenar}
-                  onChange={() => {
-                    collectStuff(ordenar.label);
+                  onChange={(e) => {
+                    order = e.value;
+                    collectStuff(optionResult, currFilter);
                   }}
                   placeholder="Select an order "
                 />
@@ -244,6 +245,7 @@ export default function Search(props) {
                     <CollectionCardFunction
                       name={card.name}
                       rating={card.score}
+                      id={card.id}
                       author={card.owner.name}
                       description={card.description}
                       thumbnails={card.items_thumbnails}
@@ -278,11 +280,12 @@ export default function Search(props) {
             </Grid>
           </GridBuscaCollection>
         )}
+
         {optionResult === "LearningObject" && (
           <GridBuscaResource container spacing={2}>
             <Grid item md={3} xs={12}>
               <Paper elevation={4} square>
-                <SearchExpansionPanel />
+                <SearchExpansionPanel onChange={collectStuff}/>
               </Paper>
             </Grid>
             <Grid item md={9} xs={12}>
@@ -290,13 +293,19 @@ export default function Search(props) {
                 {resultsResource.map((card) => (
                   <Grid item md={4} xs={6} key={card.id}>
                     <ResourceCardFunction
-                      name={card.name}
-                      rating={card.score}
-                      type={card.object_type}
-                      description={card.description}
+                      avatar={card.publisher.avatar}
+                      id={card.id}
                       thumbnail={card.thumbnail}
+                      type={card.object_type ? card.object_type : "Outros"}
+                      title={card.name}
+                      published={card.state === "published" ? true : false}
+                      likeCount={card.likes_count}
+                      liked={card.liked}
+                      rating={card.review_average}
                       author={card.author}
-                      avatar={card.publisher.avatar}
+                      tags={card.educational_stages}
+                      href={"/recurso/" + card.id}
+                      downloadableLink={card.default_attachment_location}
                     />
                   </Grid>
                 ))}
@@ -327,6 +336,7 @@ export default function Search(props) {
             </Grid>
           </GridBuscaResource>
         )}
+
         {optionResult === "User" && (
           <GridBuscaUser container spacing={2}>
             <Grid item md={12} xs={12}>
@@ -334,16 +344,16 @@ export default function Search(props) {
                 {resultsUser.map((card) => (
                   <Grid item md={4} xs={6} key={card.id}>
                     <ContactCard
-                    name = {card.name}
-                    avatar = {card.avatar ? apiDomain + card.avatar : null}
-                    cover={card.cover ? apiDomain + card.cover : null}
-                    numCollections = {card.collections_count}
-                    numLearningObjects = {card.learning_objects_count}
-                    follow_count={card.follows_count}
-                    followed = {card.followed || null}
-                    followerID = {card.id}
-                    href={'/usuario-publico/' + card.id}
-                />
+                      name={card.name}
+                      avatar={card.avatar ? apiDomain + card.avatar : null}
+                      cover={card.cover ? apiDomain + card.cover : null}
+                      numCollections={card.collections_count}
+                      numLearningObjects={card.learning_objects_count}
+                      follow_count={card.follows_count}
+                      followed={card.followed || null}
+                      followerID={card.id}
+                      href={'/usuario-publico/' + card.id}
+                    />
                   </Grid>
                 ))}
               </Grid>
@@ -391,7 +401,7 @@ const GridBuscaCollection = styled(Grid)`
 `;
 const GridBuscaResource = styled(Grid)`
   color: #666;
-  background-color: red;
+  background-color: red; 
 
   h4 {
     padding: 0 15px;