java中getbest_Java Highlighter.getBestFragment方法代碼示例

本文整理匯總了Java中org.apache.lucene.search.highlight.Highlighter.getBestFragment方法的典型用法代碼示例。如果您正苦於以下問題:Java Highlighter.getBestFragment方法的具體用法?Java Highlighter.getBestFragment怎麽用?Java Highlighter.getBestFragment使用的例子?那麽恭喜您, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.apache.lucene.search.highlight.Highlighter的用法示例。

在下文中一共展示了Highlighter.getBestFragment方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於我們的係統推薦出更棒的Java代碼示例。

示例1: searToHighlighterCss

​點讚 3

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

/**

* ����

* @param analyzer

* @param searcher

* @throws IOException

* @throws InvalidTokenOffsetsException

*/

public void searToHighlighterCss(Analyzer analyzer,IndexSearcher searcher) throws IOException, InvalidTokenOffsetsException{

Term term =new Term("Content", new String("免費".getBytes(),"GBK"));//��ѯ��������˼����Ҫ�����Ա�Ϊ���������

TermQuery query =new TermQuery(term);

TopDocs docs =searcher.search(query, 10);//����

/**�Զ����ע�����ı���ǩ*/

SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("","");

/**����QueryScorer*/

QueryScorer scorer=new QueryScorer(query);

/**����Fragmenter*/

Fragmenter fragmenter = new SimpleSpanFragmenter(scorer);

Highlighter highlight=new Highlighter(formatter,scorer);

highlight.setTextFragmenter(fragmenter);

for(ScoreDoc doc:docs.scoreDocs){//��ȡ���ҵ��ĵ����������

Document document =searcher.doc(doc.doc);

String value = document.getField("Content").toString();

TokenStream tokenStream = analyzer.tokenStream("Content", new StringReader(value));

String str1 = highlight.getBestFragment(tokenStream, value);

System.out.println(str1);

}

}

開發者ID:Smalinuxer,項目名稱:Rearchor,代碼行數:30,

示例2: testHits

​點讚 3

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

public void testHits() throws Exception {

IndexSearcher searcher = new IndexSearcher(TestUtil.getBookIndexDirectory());

TermQuery query = new TermQuery(new Term("title", "action"));

TopDocs hits = searcher.search(query, 10);

QueryScorer scorer = new QueryScorer(query, "title");

Highlighter highlighter = new Highlighter(scorer);

highlighter.setTextFragmenter(new SimpleSpanFragmenter(scorer));

Analyzer analyzer = new SimpleAnalyzer();

for (ScoreDoc sd : hits.scoreDocs) {

StoredDocument doc = searcher.doc(sd.doc);

String title = doc.get("title");

TokenStream stream = TokenSources.getAnyTokenStream(searcher.getIndexReader(), sd.doc, "title", doc,

analyzer);

String fragment = highlighter.getBestFragment(stream, title);

LOGGER.info(fragment);

}

}

開發者ID:xuzhikethinker,項目名稱:t4f-data,代碼行數:23,

示例3: displayHtmlHighlight

​點讚 2

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

static String displayHtmlHighlight(Query query, Analyzer analyzer, String fieldName, String fieldContent,

int fragmentSize) throws IOException, InvalidTokenOffsetsException {

Highlighter highlighter = new Highlighter(new SimpleHTMLFormatter("", ""),

new QueryScorer(query));

Fragmenter fragmenter = new SimpleFragmenter(fragmentSize);

highlighter.setTextFragmenter(fragmenter);

return highlighter.getBestFragment(analyzer, fieldName, fieldContent);

}

開發者ID:tedyli,項目名稱:Tedyli-Searcher,代碼行數:9,

示例4: search

​點讚 2

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

@Override

@SuppressWarnings("unchecked")

public List search(Paging paging, String q) throws Exception {

FullTextSession fullTextSession = Search.getFullTextSession(super.session());

SearchFactory sf = fullTextSession.getSearchFactory();

QueryBuilder qb = sf.buildQueryBuilder().forEntity(PostPO.class).get();

org.apache.lucene.search.Query luceneQuery = qb.keyword().onFields("title","summary","tags").matching(q).createQuery();

FullTextQuery query = fullTextSession.createFullTextQuery(luceneQuery);

query.setFirstResult(paging.getFirstResult());

query.setMaxResults(paging.getMaxResults());

StandardAnalyzer standardAnalyzer = new StandardAnalyzer();

SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("", "");

QueryScorer queryScorer = new QueryScorer(luceneQuery);

Highlighter highlighter = new Highlighter(formatter, queryScorer);

List list = query.list();

List rets = new ArrayList<>(list.size());

for (PostPO po : list) {

Post m = BeanMapUtils.copy(po, 0);

// 處理高亮

String title = highlighter.getBestFragment(standardAnalyzer, "title", m.getTitle());

String summary = highlighter.getBestFragment(standardAnalyzer, "summary", m.getSummary());

if (StringUtils.isNotEmpty(title)) {

m.setTitle(title);

}

if (StringUtils.isNotEmpty(summary)) {

m.setSummary(summary);

}

rets.add(m);

}

paging.setTotalCount(query.getResultSize());

return rets;

}

開發者ID:ThomasYangZi,項目名稱:mblog,代碼行數:41,

示例5: searchCorpus

​點讚 2

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

/**

* Searches the current corpus using the search terms in the search field.

*/

private void searchCorpus() {

if (search.getText().trim().equals("")) return;

try {

indexSearcher = guess.getSelected() != null ?

getIndex(getDiffCorpus(gold.getSelected(), guess.getSelected())) :

getIndex(gold.getSelected());

//System.out.println("Searching...");

QueryParser parser = new QueryParser("Word", analyzer);

Query query = parser.parse(search.getText());

Hits hits = indexSearcher.search(query);

Highlighter highlighter = new Highlighter(new QueryScorer(query));

DefaultListModel model = new DefaultListModel();

for (int i = 0; i < hits.length(); i++) {

Document hitDoc = hits.doc(i);

int nr = Integer.parseInt(hitDoc.get(""));

//System.out.println(hitDoc.get(""));

String best = null;

for (Object field : hitDoc.getFields()) {

Field f = (Field) field;

best = highlighter.getBestFragment(analyzer, f.name(), hitDoc.get(f.name()));

if (best != null) break;

}

if (best != null)

model.addElement(new Result(nr, "" + nr + ":" + best + ""));

//System.out.println(highlighter.getBestFragment(analyzer, "Word", hitDoc.get("Word")));

//assertEquals("This is the text to be indexed.", hitDoc.get("fieldname"));

}

results.setModel(model);

repaint();

} catch (Exception ex) {

ex.printStackTrace();

}

}

開發者ID:riedelcastro,項目名稱:whatswrong,代碼行數:37,

示例6: main

​點讚 2

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

public static void main(String[] args) throws Exception{

ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

SessionFactory sessionFactory = applicationContext.getBean("hibernate4sessionFactory",SessionFactory.class);

FullTextSession fullTextSession = Search.getFullTextSession(sessionFactory.openSession());

//使用Hibernate Search api查詢 從多個字段匹配 name、description、authors.name

//QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Book.class ).get();

//Query luceneQuery = qb.keyword().onFields("name","description","authors.name").matching("移動互聯網").createQuery();

//使用lucene api查詢 從多個字段匹配 name、description、authors.name

//使用庖丁分詞器

MultiFieldQueryParser queryParser=new MultiFieldQueryParser(Version.LUCENE_36, new String[]{"name","description","authors.name"}, new PaodingAnalyzer());

Query luceneQuery=queryParser.parse("實戰");

FullTextQuery fullTextQuery =fullTextSession.createFullTextQuery(luceneQuery, Book.class);

//設置每頁顯示多少條

fullTextQuery.setMaxResults(5);

//設置當前頁

fullTextQuery.setFirstResult(0);

//高亮設置

SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("", "");

QueryScorer queryScorer=new QueryScorer(luceneQuery);

Highlighter highlighter=new Highlighter(formatter, queryScorer);

@SuppressWarnings("unchecked")

List resultList = fullTextQuery.list();

System.out.println("共查找到["+resultList.size()+"]條記錄");

for (Book book : resultList) {

String highlighterString=null;

Analyzer analyzer=new PaodingAnalyzer();

try {

//高亮name

highlighterString=highlighter.getBestFragment(analyzer, "name", book.getName());

if(highlighterString!=null){

book.setName(highlighterString);

}

//高亮authors.name

Set authors = book.getAuthors();

for (Author author : authors) {

highlighterString=highlighter.getBestFragment(analyzer, "authors.name", author.getName());

if(highlighterString!=null){

author.setName(highlighterString);

}

}

//高亮description

highlighterString=highlighter.getBestFragment(analyzer, "description", book.getDescription());

if(highlighterString!=null){

book.setDescription(highlighterString);

}

} catch (Exception e) {

}

System.out.println("書名:"+book.getName()+"\n描述:"+book.getDescription()+"\n出版日期:"+book.getPublicationDate());

System.out.println("----------------------------------------------------------");

}

fullTextSession.close();

sessionFactory.close();

}

開發者ID:v5developer,項目名稱:maven-framework-project,代碼行數:62,

示例7: query

​點讚 2

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

@Override

public QueryResult query(String keyword, int start, int pagesize,Analyzer analyzer,String...field) throws Exception{

QueryResult queryResult=new QueryResult();

List books=new ArrayList();

FullTextSession fullTextSession = Search.getFullTextSession(getSession());

//使用Hibernate Search api查詢 從多個字段匹配 name、description、authors.name

//QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Book.class ).get();

//Query luceneQuery = qb.keyword().onFields(field).matching(keyword).createQuery();

//使用lucene api查詢 從多個字段匹配 name、description、authors.name

MultiFieldQueryParser queryParser=new MultiFieldQueryParser(Version.LUCENE_36,new String[]{"name","description","authors.name"}, analyzer);

Query luceneQuery=queryParser.parse(keyword);

FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(luceneQuery);

int searchresultsize = fullTextQuery.getResultSize();

queryResult.setSearchresultsize(searchresultsize);

System.out.println("共查找到["+searchresultsize+"]條記錄");

fullTextQuery.setFirstResult(start);

fullTextQuery.setMaxResults(pagesize);

//設置按id排序

fullTextQuery.setSort(new Sort(new SortField("id", SortField.INT ,true)));

//高亮設置

SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("", "");

QueryScorer queryScorer=new QueryScorer(luceneQuery);

Highlighter highlighter=new Highlighter(formatter, queryScorer);

@SuppressWarnings("unchecked")

List tempresult = fullTextQuery.list();

for (Book book : tempresult) {

String highlighterString=null;

try {

//高亮name

highlighterString=highlighter.getBestFragment(analyzer, "name", book.getName());

if(highlighterString!=null){

book.setName(highlighterString);

}

//高亮authors.name

Set authors = book.getAuthors();

for (Author author : authors) {

highlighterString=highlighter.getBestFragment(analyzer, "authors.name", author.getName());

if(highlighterString!=null){

author.setName(highlighterString);

}

}

//高亮description

highlighterString=highlighter.getBestFragment(analyzer, "description", book.getDescription());

if(highlighterString!=null){

book.setDescription(highlighterString);

}

} catch (Exception e) {

}

books.add(book);

System.out.println("書名:"+book.getName()+"\n描述:"+book.getDescription()+"\n出版日期:"+book.getPublicationDate());

System.out.println("----------------------------------------------------------");

}

queryResult.setSearchresult(books);

return queryResult;

}

開發者ID:v5developer,項目名稱:maven-framework-project,代碼行數:72,

示例8: main

​點讚 2

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

public static void main(String[] args) throws Exception{

ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

EntityManagerFactory entityManagerFactory = applicationContext.getBean("entityManagerFactory",EntityManagerFactory.class);

FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManagerFactory.createEntityManager());

//使用Hibernate Search api查詢 從多個字段匹配 name、description、authors.name

//QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Book.class ).get();

//Query luceneQuery = qb.keyword().onFields("name","description","authors.name").matching("移動互聯網").createQuery();

//使用lucene api查詢 從多個字段匹配 name、description、authors.name

//使用庖丁分詞器

MultiFieldQueryParser queryParser=new MultiFieldQueryParser(Version.LUCENE_36, new String[]{"name","description","authors.name"}, new PaodingAnalyzer());

Query luceneQuery=queryParser.parse("實戰");

FullTextQuery fullTextQuery =fullTextEntityManager.createFullTextQuery(luceneQuery, Book.class);

//設置每頁顯示多少條

fullTextQuery.setMaxResults(5);

//設置當前頁

fullTextQuery.setFirstResult(0);

//高亮設置

SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("", "");

QueryScorer queryScorer=new QueryScorer(luceneQuery);

Highlighter highlighter=new Highlighter(formatter, queryScorer);

@SuppressWarnings("unchecked")

List resultList = fullTextQuery.getResultList();

for (Book book : resultList) {

String highlighterString=null;

Analyzer analyzer=new PaodingAnalyzer();

try {

//高亮name

highlighterString=highlighter.getBestFragment(analyzer, "name", book.getName());

if(highlighterString!=null){

book.setName(highlighterString);

}

//高亮authors.name

Set authors = book.getAuthors();

for (Author author : authors) {

highlighterString=highlighter.getBestFragment(analyzer, "authors.name", author.getName());

if(highlighterString!=null){

author.setName(highlighterString);

}

}

//高亮description

highlighterString=highlighter.getBestFragment(analyzer, "description", book.getDescription());

if(highlighterString!=null){

book.setDescription(highlighterString);

}

} catch (Exception e) {

}

}

fullTextEntityManager.close();

entityManagerFactory.close();

}

開發者ID:v5developer,項目名稱:maven-framework-project,代碼行數:60,

示例9: query

​點讚 2

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

@Override

public QueryResult query(String keyword, int start, int pagesize,Analyzer analyzer,String...field) throws Exception{

QueryResult queryResult=new QueryResult();

List books=new ArrayList();

FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em);

//使用Hibernate Search api查詢 從多個字段匹配 name、description、authors.name

//QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Book.class ).get();

//Query luceneQuery = qb.keyword().onFields(field).matching(keyword).createQuery();

//使用lucene api查詢 從多個字段匹配 name、description、authors.name

MultiFieldQueryParser queryParser=new MultiFieldQueryParser(Version.LUCENE_36,new String[]{"name","description","authors.name"}, analyzer);

Query luceneQuery=queryParser.parse(keyword);

FullTextQuery fullTextQuery = fullTextEntityManager.createFullTextQuery(luceneQuery);

int searchresultsize = fullTextQuery.getResultSize();

queryResult.setSearchresultsize(searchresultsize);

fullTextQuery.setFirstResult(start);

fullTextQuery.setMaxResults(pagesize);

//設置按id排序

fullTextQuery.setSort(new Sort(new SortField("id", SortField.INT ,true)));

//高亮設置

SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("", "");

QueryScorer queryScorer=new QueryScorer(luceneQuery);

Highlighter highlighter=new Highlighter(formatter, queryScorer);

@SuppressWarnings("unchecked")

List tempresult = fullTextQuery.getResultList();

for (Book book : tempresult) {

String highlighterString=null;

try {

//高亮name

highlighterString=highlighter.getBestFragment(analyzer, "name", book.getName());

if(highlighterString!=null){

book.setName(highlighterString);

}

//高亮authors.name

Set authors = book.getAuthors();

for (Author author : authors) {

highlighterString=highlighter.getBestFragment(analyzer, "authors.name", author.getName());

if(highlighterString!=null){

author.setName(highlighterString);

}

}

//高亮description

highlighterString=highlighter.getBestFragment(analyzer, "description", book.getDescription());

if(highlighterString!=null){

book.setDescription(highlighterString);

}

} catch (Exception e) {

}

books.add(book);

}

queryResult.setSearchresult(books);

return queryResult;

}

開發者ID:v5developer,項目名稱:maven-framework-project,代碼行數:68,

示例10: getHighlightedField

​點讚 1

import org.apache.lucene.search.highlight.Highlighter; //導入方法依賴的package包/類

/**

*

*

* @param query

* @param analyzer

* @param fieldName

* @param fulltext

* @param startDelimiter

* @param stopDelimiter

* @return

*

* @throws IOException

* @throws InvalidTokenOffsetsException

*/

public static String getHighlightedField(Query query, Analyzer analyzer, String fieldName,

String fulltext, final String startDelimiter, final String stopDelimiter) throws IOException,

InvalidTokenOffsetsException {

Formatter formatter = new SimpleHTMLFormatter(startDelimiter, stopDelimiter);

QueryScorer queryScorer = new QueryScorer(query);

Highlighter highlighter = new Highlighter(formatter, queryScorer);

highlighter.setTextFragmenter(new SimpleSpanFragmenter(queryScorer, Integer.MAX_VALUE));

highlighter.setMaxDocCharsToAnalyze(Integer.MAX_VALUE);

return highlighter.getBestFragment(analyzer, fieldName, fulltext);

}

開發者ID:kolbasa,項目名稱:OCRaptor,代碼行數:27,

注:本文中的org.apache.lucene.search.highlight.Highlighter.getBestFragment方法示例整理自Github/MSDocs等源碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常表示在绑定(binding)过程,类 `org.jetbrains.kotlin.idea.highlighter.KotlinDefaultHighlightingSettingsProvider` 没有可访问的访问器(accessor)。 绑定是指将 XML 数据绑定到 Java 类的过程。在 IntelliJ IDEA ,XML 序列化和反序列化使用的是 XML 库和注解。但是,如果类缺少适当的访问器方法,绑定过程就会失败。 要解决这个错误,你可以尝试以下几个步骤: 1. 确认类的访问器方法存在:检查 `KotlinDefaultHighlightingSettingsProvider` 类是否存在公共的访问器方法(getter 和 setter)。确保这些方法符合 JavaBean 规范,并且名称和类型与对应的属性匹配。 2. 检查类的注解配置:确保 `KotlinDefaultHighlightingSettingsProvider` 类上的注解配置正确,并且与绑定过程的期望结果一致。特别是,检查是否存在与 XML 元素名称对应的注解。 3. 更新或修复插件:如果你遇到这个错误是因为 IntelliJ IDEA 或 Kotlin 插件的问题,尝试更新或重新安装相关插件版本。有时候,插件更新可以修复已知的问题或缺陷。 4. 向开发者报告问题:如果以上步骤都无法解决问题,你可以向 IntelliJ IDEA 或 Kotlin 插件的开发者报告该问题。他们可能会提供更详细的指导或修复。 需要注意的是,这个错误可能是由于插件或框架的问题引起的,因此你可能无法直接解决它。在这种情况下,寻求插件或框架的开发者支持可能是解决问题的最佳途径。 希望这些提示能够帮助你解决问题,如果你有任何其他疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值