Teaser doesn't update in search results Drupal 7 - search

I have a drupal 7 site with ApacheSolr search. When I edit a teaser (which is set up as "summary or trimmed") the teaser does not update in the search results. It's a particular problem for us in the people content type, as updated expert bio information doesn't refresh into the search results. As a result the teaser version that comes up in search doesn't reflect any new skills/experience. Is there a way I can force it to update node? (example: compare the text in the search results for Sivan: vs. his actual bio

Have you try to delete index and re-index it after the changes?

Related

Kentico hierarchical viewer content filter "invalid column name" exception

I have a page that uses a hierarchical viewer with a content filter that filters on two page types, one a container and the other a leaf page. The container page type has no fields, the page does have several fields. In Hierarchical Viewer/Content Filter/Columns I list a few columns explicitly to return, as this helps performance.
We are upgrading from Kentico 8.2 to Kentico 9. In the 8.2 site, this page is working. In the 9 site, it is now throwing an exception saying "Invalid column name". If I remove the column list (allowing Kentico to return all columns by default), it works again. The performance hit isn't very noticeable, so this is a viable option. However, I'd like to know why this isn't working now in Kentico 9.
It seems like when returning all columns, by default, if a column isn't available on a page type, Kentico generates SELECT null as MissingColumnName, but when explicitly listing the columns to return, it generates SELECT MissingColumnName. I don't know if this is a change between Kentico 8.2 and 9, or if something got changed during the upgrade.
Pre version 9, Kentico created specific views for each page type. These views were used in the queries to retrieve page information. The views joined the node, document and custom page type information into one query. In v9 these views were removed and a generic view was added which only joins the node and document information together, then dynamically adds the custom page type information after.
So the short answer is the API changed significantly for the pages and how data is retrieved so this is an expected breaking change. Your solution is not the best solution since it returns all the columns. BUT it would be the quick, easy fix. I'd suggest adding in some caching on the webpart which will help performance greatly which is what we do for situations like this in v9 and newer sites.

How can I crawl but not index web pages in OpenSearchServer?

I'm using OpenSearchServer to provide search functionality on a web site. I want to crawl all pages on the site for links to follow but I want to exclude some pages from the index. I can't work out how to do this.
Specifically the website includes a shop that has its own product search and I am keeping this search for products and categories. The product pages have URLs like http://www.thesite/p/123 so I don't want to include any page like this in the search results. However some product pages reference background info pages and I want these to be included in the search index.
The problem I have is that the filter has no effect on the results - it doesn't filter out the /p/ and /c/ results. If I change the filter by unticking the negative box I get no results so it seems to be either the contents of the field or the filter criteria that is causing the problem.
I've tried adding a negative filter to the default query called search in the Query > Filter tab on the index with url:"http://www.thesite/p/*"
but it seems that wildcards are not supported for query filters although they are supported for Crawler > Exclusion list filters.
I've tried adding a new field called urlField in Schema > Fields and populating it using an analyzer configured using the Whitespace Tokenizer and a regular expression (http://www.thesite/(c|p)/). When I use the Test button it seems to generate two tokens for my test URL http://www.thesite/p/123:
http://www.thesite/p/
p
I'd hoped to be able to use the first one in a Query > Filter to exclude all the shop results and optionally be able to use the p (for product) or c (for category) if I need to search the product pages sometime in the future.
The urlShop field in the schema is set up as follows:
Indexed: yes
Stored: no (because I don't need the field back, just want to be able to filter on it)
TermVector: No
Analyzer: urlShop
Copy of: url
I've added urlFilter:"http://www.thesite/p/" to Query > Filters with the negative box ticked.
This seems to have no effect on the results when I use the default renderer.
To see whether it affects the returned results I unticked the negative box in the query filter I get no results in the default renderer. This leads me to believe that the urlShop field is not being populated but I'm not sure how to check this directly.
I would like to know whether there is an easier way to do this but if my approach makes sense in the context of OpenSearchServer please can you help me identify what's wrong?
The website is running under IIS and OpenSearchServer will be configured on the same server running in Tomcat.
Finally figured this out...
Go to query and hit edit for your configured query. Then go to the filters tab. Add a query filter like this:
urlExact:"http://myurltoexclude*"
Check the "negative" box. Click add.
Now make sure to click "save in the tiny little button on the right hand side. This is the part I missed. The URLS are still in the DB and crawl, but at least they aren't returned in results.

Sphinx "reverse" search

We have a website where users put up ads for stuff they want to sell, with parameters such as price, location, title and description. These can then be searched for using sphinx and allowing users to specify min- and maxprice, a location with a searchradius (using google maps) etc. Users can choose to save these searches and get emails when new ads appear that fit their search. Herein lies the problem: We want to perform a reverse search every time an ad is posted. With the price, location, title and description as parameters we want to search through all the saved "searches" and get the ones that would have found the ad. The min- and maxprice should just be performed in a query i suppose, and some Quorom syntax to get all ads with at least 2 or mby just 1 occurance in the title/description. Our problem lies mostly in the geo-search. How do we find all searches where the "search-circles" would include our newly posted location without performing a search for every saved search?
That is the main-question, any comment on our suggested solution to the other problems is also very welcome. Thank you in advance / Jenny
The standard 'geo-search' support on sphinx should work just as well on a Prospective Index, as a normal retrospective search.
Having built a sphinx 'index' of all the saved searches...
And you run a query using the 'ad' as the search query:- rather than the 'filter' using a fixed radius, you just use the radius from the attribute (ie the radius stored on the particular query) - if using the API cant use setFilterRange directly, need to use setSelect, to make a new virtual attribute.
$cl->setSelect("*,IF(#geodist<radius,1,0) as myfilter");
$cl->setFilter('myfilter',array(1));
(and yes, the min/maxprice can just be done with normal filters too - just inverting the logic to that you would use in a retrospective search)
... the complication is in the 'full-text' query, if the saved search is anything more than a single keyword, but you appear to have already figured out that part.

TreelistEx field with Search

I have a requirement from a client to modify the treelistex field to include a search box on top of the left content tree list box. This will allow searching of items instead of the user having to click through the content tree. This Sitecore installation has pages numbering in the thousands hence clicking through takes time and knowing where the page item exists.
How can I achieve this functionality? I will use the _system Lucene index from Sitecore to search the various items. The items need to be search based on item name, title field, content field and date fields.
Thanks
Interestingly, something just like this was posted to Shared Source the other day! Check out the Specialized Treelist from Shared Source.
Search using the built in Sitecore Lucene indexes

Sharepoint 2010 Search - Auto add property to QueryString

Have a bit of a difficult question which as far as I can see, no one has really managed to fix yet.
Here's the scenario. Sharepoint 2010 EnterPrise Search Centre.
I've created a custom Search Results Page. I want people who type any word in the Search box to only display results where the Value provided by the user matches with a specific Managed Search Property.
Now I know a user can search for People with specific criteria by entering for example
Continent:Europe in the actual Search Box. Sharepoint will refresh the page with the following added to the Query String: k=Continent:Europe and the results will only show people who are from Europe.
So my question is : How can I fix this so that the user does not have to enter the Continent:Europe in the Search box and can just type Europe?
Thanks
One option is to create your own webpart that acts as the search box and replaces the standard one with your custom search box. The advantage of this is that you can more tightly control the user interface and then set up the query passed to the server (with the "k" parameter). You could prepend "Continent:" before the search term entered to help narrow the search.
Another use for this is to append * onto any search term because the People search does include partial words by default.
We did this on one site to simplify the input and allow users to search with one text box (without the advanced features) and then users can use the refinements to narrow the search.

Resources