I have the following code:
$collection = Mage::getSingleton('catalogsearch/layer')->getProductCollection();
I've tried
$collection = Mage::getSingleton('catalogsearch/layer')->getProductCollection()->addAttributeToSort('relevance', 'desc')
But it does not work.
Any ideas?
Check out this related answer: Magento Search 'relevance' Value is Always 0
It gives some insight into the relevance value of search results.
Related
I am using the following query to show list of data, but here limit is not working.
$query = $this->Bookings->find('all')
->where(['Bookings.user_id' => $id])
->contain(['Services'])
->limit(10)
->orderDesc('booking_date');
$this->set('bookings', $this->paginate($query));
$this->set('_serialize', ['bookings']);
but, I am not getting the list of 10 data in each page.
Perhaps it is better to use the $paginate property and then use the maxLimit
See: http://book.cakephp.org/3.0/en/controllers/components/pagination.html#limit-the-maximum-number-of-rows-per-page
I'm using Alfresco 5.0.d
I see in the search json result (with firebug console panel) that in addition to result items , 2 other properties are returned : numberFound and totalRecords. It seems that Alfresco search engine considers numberFound as total items found.
So it display "numberFound results founded" to user.
The problem is that numberFound is not equals to totalRecords.
I see that totalRecords is the correct number of search result (in fact search always return totalRecords number of items).
So i decided to see in the webscript that performs search (alfresco-remote-api-5.0.d.jar\alfresco\templates\webscripts\org\alfresco\slingshot\search\search.lib.js).
We can easly see that the numberFound property comes from this statement
var rs = search.queryResultSet(queryDef);
var numberFound = rs.meta.numberFound ;
About totalRecords property, it comes from the same statement but a little bit different:
var totalRecords = rs.nodes.length
which is the correct value of number of item really found.
So is it an Alfresco api bug?
If no , is it possible that error comes from my query parameters?
Can someone explains me what does mean the numberFound property?
Thank you.
Below is the URL of java file which is getting called when you are executing search.queryResultSet(queryDef) code.
you can refer below method in the java file.It is adding all the things.
https://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/projects/repository/source/java/org/alfresco/repo/jscript/Search.java
public Scriptable queryResultSet() //This is java method which is getting called.
Below is the code which is written for what you are getting in result.
meta:
{
numberFound: long, // total number found in index, or -1 if not known or not supported by this resultset
facets:
{ // facets are returned for each field as requested in the SearchParameters fieldfacets
field:
{ // each field contains a map of facet to value
facet: value,
},
}
}
Trouble in search in grocery CRUD, search by one field with no results , then I cannot get the original results back, "clear filtering" does not work, and refresh page will auto hide all results. Thanks!
Here is my code:
$crud = new grocery_CRUD();
$crud->set_table('p_user');
$crud->where('parentid', $parent_id);
$crud->required_fields('name');
$crud->columns('name','password','email','type');
$output = $crud->render();
Screenshot:
I think your problem is the code:
$crud->where('parentid', $parent_id);
Did you include the $parent_id to the URL? So for example if you have
http://www.example.com/main/test
it has to be: http://www.example.com/main/test/345 or something like that. So in your case I think this will solve your problem:
if (!empty($parent_id)) {
$crud->where('parentid', $parent_id);
}
I am using flickr api in order to count the how many times a tag occur. I want this information in order to calculate the Normalized Google Distance. I am using this query in my java code:
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=XXXXXXX&format=json&tags=bank
But i don't get good results. For example when i search "bank" the count value is 357439, when i search "credit" the count value is 59288, but when i am search for "bank credit" the count value is only 2. When i searching with the search box at flickr.com for "bank credit" i get a lot of results. But as far as i can see the query it uses is
http://www.flickr.com/search/?q=bank%20credit
which i am not able to use through my java code. I am trying to pass this
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=XXXXXXX&format=json&q=bank
and it says
Parameterless searches have been disabled. Please use flickr.photos.getRecent instead
How can i solve this problem?
Your generated url is incorrect
http://api.flickr.com/services/rest/method=flickr.photos.search&api_key=XXXXXXX&format=json&q=bank
is missing the question mark
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=XXXXXXX&format=json&q=bank
UPDATE based on OP comments:
I didn't see you had the question mark on the top url string. Looking at it again, I did realize you are not passing in any valid parameters. "q" isn't one of the listed parameters on the search api page. Try something like below to search photos with "bank" tag
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=XXXXXXX&format=json&tags=bank
or one with bank in description/title
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=XXXXXXX&format=json&text=bank
I got the same error. but when I added media = photos in the parameters, it got resolved.
e.g. :
baseurl = "https://api.flickr.com/services/rest/"
params_d['api_key'] = 'XXXXXXX'
params_d['method'] = 'flickr.photos.search'
params_d['tag'] = "river,mountains"
params_d['tag_mode'] = 'all'
params_d['per_page'] = 5
params_d['media'] = "photos"
params_d['nojsoncallback'] = 1
params_d['format'] = 'json'
resp = requests.get(baseurl, params = params_d)
How do we sort using the database class in expressionengine. orderby and sort are given an error and do not seem to work. I can't seem to find anything in the documantation about sorting results. This is what i have.
$results = $this->EE->db->query("
SELECT plan_name
FROM exp__plans
WHERE member_id='1002' AND orderby="id" sort="desc" LIMIT 1
");
$x = $results->row('plan_name')
;
There are issues with your query.
try:
$results = $this->EE->db->query("
SELECT plan_name
FROM exp_plans
WHERE member_id = '1002'
ORDER BY id DESC LIMIT 1
");
I would recommend trying to run your query directly against the database if you're having trouble with it. 90% of the time it will be an issue with your SQL.
Also, you are writing this in a add-on... right? if you're trying to get this to work within a template I would recommend checking out the query module.
You can also use Active Record in order to create your query:
$this->EE->db->select('plan_name')
->from('plans')
->where('member_id', '1002')
->order_by("id", "desc")
->limit(1)
->get();
All the doc is on the Codeigniter website.