Lucene.NET запрос + выделение - PullRequest
0 голосов
/ 10 июня 2011

Я использую Umbraco и наткнулся на Lucene.Я нашел много кода и статей по Lucene, но все еще не могу создать приемлемый поиск.

У меня есть несколько полей для поиска, например."nodeName" и "bodyText"

Что мне нужно:

  • Когда я ищу "мужскую обувь", он должен возвращать только результаты, в которых есть "мужчины" и«shoes», но также возвращает страницу, на которой в nodeName есть только «shoes», а в bodyText только «men».

  • Когда я ищу «shoes», мне нужны результаты, содержащие«обувь» или «обувь».но не "мотыги", если это возможно

  • Увеличить поле nodeName

  • Получить фрагмент bodyText, который содержит совпадающее слово (слова)

  • Выделите совпадающие слова как в названии страницы, так и во фрагменте bodyText

Кто-нибудь когда-либо делал это?

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Это может помочь вам начать.

var manager = ExamineManager.Instance;
var searcher = manager.SearchProviderCollection["YOURSearcher"];
var query = manager.SearchProviderCollection["YOURSearcher"].CreateSearchCriteria(BooleanOperation.Or)
   .Field("nodeName", keywords.Boost(10))
   .Or().Field("nodeName", keywords.Fuzzy())
   .Or().Field("bodyContent", keywords.Boost(5))
   .Or().Field("otherField", keywords.Boost(3));
var results = searcher.Search(query.Compile());
0 голосов
/ 14 июня 2011

Код Джонатана Латиги работает, он самый похожий на Google, какой я только мог найти

http://our.umbraco.org/forum/developers/extending-umbraco/19329-Search-multiple-fields-for-multiple-terms-with-examine?p=0

...