I'm using the code listed here:
http://msdn.microsoft.com/en-us/library/ms553069.aspx
With an additional line added as a call to .update() after the property is set in order to save the changes, but even with a weight of 10,000 the search results for my property are still at the bottom, particularly below title. Is there some other things that need to be done in order to get the weighting to propogate?
I've also tried setting the title, author, and filename to 0, setting the property (keywords) to 9999, and setting length normalization of the property to 0. The results shift a bit, but searches with keywords that match the property still do not match.
All tests were done with a full crawl afterwards, reset IIS, and recycle the shared services app pool.
I can give you any extra information you might request.
Thanks, Stefan
UPDATE (6-19-09): Added a bounty of 500 to this. Very little information about this feature available online, apparently a good answer would a huge service to the internet community. It'd probably save me a week too :)
UPDATE 2 (6-19-09): The schema is essentially this: OOB sharepoint document content type with added text field "Keywords". Managed property attached to ows_keywords(Text).
UPDATE 3 (6-19-09): Sharepoint Search Bench from Codeplex has helped the search a lot.
UPDATE 4 (6-19-09): I've arrived at a solution that involves creating many (5 right now) more managed properties with the same crawled property. Each weight is set to something unusual (like 9999). These do enough to buoy the keyword results to the top. Less than ideal though. Still looking for a solution.
The solution in Update 4 is what I ended up with. As Lars commented, the search is not very flexible and despite offering tweaks to the property weightings, the effect is not always what you would expect.
The property only positively affects the ranking score when you search for keywords present in the property. For any other query the weight has no effect whatsoever! E.g. when searching for the keywords "SharePoint Search", the title property weight ensures that the ranking score is boosted for documents having these keywords in the title. But documents without any of these keywords in the title are not boosted by the title weight. This applies to all managed properties of type text.
Chaging the weighth of a property should not need a recrawl, just a reset of the search service.
Found this on the internet:
In addition to setting the weight of the Managed Property, the Crawled Property that is mapped to the Managed Property must also have the “Include values for this property in the search index” check box set on.
Edit: Found it here: Larry Kuhn's blog
Have you tried using only weights in the 0 to 1 range? For example set all the other property weights to 0.2 and set keywords to 0.8. I had a little trouble with Lucene along these lines, and it was magnitude related.
Also if it's never adding hits in that property field to the results (try adding an xyzzy
keyword or something and search for it) then it's probably not weight related at all, but rather related to whether the keywords are considered for your search.
Would I be correct in assuming the .update() call is being done at the end of main()? If not, try that, if so then make sure the program is running. I would also assume that the strPropertyName is the one you want. Other than that, I can't really help you.
来源:https://stackoverflow.com/questions/1002565/sharepoint-search-property-weighting