📄 testcmssearch.java
字号:
cmsSearchBean.setSearchPage(2);
duration = -System.currentTimeMillis();
results = cmsSearchBean.getSearchResult();
duration += System.currentTimeMillis();
echo("Search2: " + cmsSearchBean.getSearchResultCount() + " results found, total duration: " + duration + " ms");
for (Iterator i = results.iterator(); i.hasNext();) {
CmsSearchResult res = (CmsSearchResult)i.next();
echo(res.getPath() + res.getExcerpt());
}
echo("With Permission check, without excerpt");
OpenCms.getSearchManager().getIndex(INDEX_OFFLINE).addConfigurationParameter(CmsSearchIndex.PERMISSIONS, CmsStringUtil.TRUE);
OpenCms.getSearchManager().getIndex(INDEX_OFFLINE).addConfigurationParameter(CmsSearchIndex.EXCERPT, CmsStringUtil.FALSE);
cmsSearchBean.setSearchPage(1);
duration = -System.currentTimeMillis();
results = cmsSearchBean.getSearchResult();
duration += System.currentTimeMillis();
echo("Search1: " + cmsSearchBean.getSearchResultCount() + " results found, total duration: " + duration + " ms");
cmsSearchBean.setSearchPage(2);
duration = -System.currentTimeMillis();
results = cmsSearchBean.getSearchResult();
duration += System.currentTimeMillis();
echo("Search2: " + cmsSearchBean.getSearchResultCount() + " results found, total duration: " + duration + " ms");
echo("Without Permission check, with excerpt");
OpenCms.getSearchManager().getIndex(INDEX_OFFLINE).addConfigurationParameter(
CmsSearchIndex.PERMISSIONS,
CmsStringUtil.FALSE);
OpenCms.getSearchManager().getIndex(INDEX_OFFLINE).addConfigurationParameter(CmsSearchIndex.EXCERPT, CmsStringUtil.TRUE);
cmsSearchBean.setSearchPage(1);
duration = -System.currentTimeMillis();
results = cmsSearchBean.getSearchResult();
duration += System.currentTimeMillis();
echo("Search1: " + cmsSearchBean.getSearchResultCount() + " results found, total duration: " + duration + " ms");
cmsSearchBean.setSearchPage(2);
duration = -System.currentTimeMillis();
results = cmsSearchBean.getSearchResult();
duration += System.currentTimeMillis();
echo("Search2: " + cmsSearchBean.getSearchResultCount() + " results found, total duration: " + duration + " ms");
echo("Without Permission check, without excerpt");
OpenCms.getSearchManager().getIndex(INDEX_OFFLINE).addConfigurationParameter(
CmsSearchIndex.PERMISSIONS,
CmsStringUtil.FALSE);
OpenCms.getSearchManager().getIndex(INDEX_OFFLINE).addConfigurationParameter(CmsSearchIndex.EXCERPT, CmsStringUtil.FALSE);
cmsSearchBean.setSearchPage(1);
duration = -System.currentTimeMillis();
results = cmsSearchBean.getSearchResult();
duration += System.currentTimeMillis();
echo("Search1: " + cmsSearchBean.getSearchResultCount() + " results found, total duration: " + duration + " ms");
cmsSearchBean.setSearchPage(2);
duration = -System.currentTimeMillis();
results = cmsSearchBean.getSearchResult();
duration += System.currentTimeMillis();
echo("Search2: " + cmsSearchBean.getSearchResultCount() + " results found, total duration: " + duration + " ms");
}
/**
* Test the cms search indexer.<p>
*
* @throws Throwable if something goes wrong
*/
public void testCmsSearchXmlContent() throws Throwable {
CmsObject cms = getCmsObject();
echo("Testing search for xml contents");
CmsSearch cmsSearchBean = new CmsSearch();
cmsSearchBean.init(cms);
cmsSearchBean.setIndex(INDEX_OFFLINE);
List results;
cmsSearchBean.setQuery(">>SearchEgg1<<");
results = cmsSearchBean.getSearchResult();
assertEquals(1, results.size());
assertEquals("/sites/default/xmlcontent/article_0001.html", ((CmsSearchResult)results.get(0)).getPath());
cmsSearchBean.setQuery(">>SearchEgg2<<");
results = cmsSearchBean.getSearchResult();
assertEquals(1, results.size());
assertEquals("/sites/default/xmlcontent/article_0002.html", ((CmsSearchResult)results.get(0)).getPath());
cmsSearchBean.setQuery(">>SearchEgg3<<");
results = cmsSearchBean.getSearchResult();
assertEquals(1, results.size());
assertEquals("/sites/default/xmlcontent/article_0003.html", ((CmsSearchResult)results.get(0)).getPath());
}
/**
* Tests index generation with different analyzers.<p>
*
* This test was added in order to verify proper generation of resource "root path" information
* in the index.
*
* @throws Throwable if something goes wrong
*/
public void testIndexGeneration() throws Throwable {
CmsSearchIndex searchIndex = new CmsSearchIndex(INDEX_TEST);
searchIndex.setProjectName("Offline");
// important: use german locale for a special treat on term analyzing
searchIndex.setLocale(Locale.GERMAN.toString());
searchIndex.setRebuildMode(CmsSearchIndex.REBUILD_MODE_AUTO);
// available pre-configured in the test configuration files opencms-search.xml
searchIndex.addSourceName("source1");
// initialize the new index
searchIndex.initialize();
// add the search index to the manager
OpenCms.getSearchManager().addSearchIndex(searchIndex);
I_CmsReport report = new CmsShellReport(Locale.ENGLISH);
OpenCms.getSearchManager().rebuildAllIndexes(report);
// perform a search on the newly generated index
CmsSearch searchBean = new CmsSearch();
List searchResult;
searchBean.init(getCmsObject());
searchBean.setIndex(INDEX_TEST);
searchBean.setQuery(">>SearchEgg1<<");
// assert one file is found in the default site
searchResult = searchBean.getSearchResult();
assertEquals(1, searchResult.size());
assertEquals("/sites/default/xmlcontent/article_0001.html", ((CmsSearchResult)searchResult.get(0)).getPath());
// change seach root and assert no more files are found
searchBean.setSearchRoot("/folder1/");
searchResult = searchBean.getSearchResult();
assertEquals(0, searchResult.size());
}
/**
* Tests if <code>{@link CmsSearch#setQuery(String)}</code> modifies
* the query in an undesireable way (changes url encoded Strings). <p>
*/
public void testQueryEncoding() {
// without encoding
String query = "謑m黨lm鋒er";
CmsSearch test = new CmsSearch();
test.setQuery(query);
assertEquals(query, test.getQuery());
// with encoding
query = CmsEncoder.encode(query, CmsEncoder.ENCODING_UTF_8);
test.setQuery(query);
assertEquals(query, test.getQuery());
}
/**
* Tests an issue where no results are found in folders that have names
* like <code>/basisdienstleistungen_-_zka/</code>.<p>
*
* @throws Exception if the test fails
*/
public void testSearchIssueWithSpecialFoldernames() throws Exception {
CmsObject cms = getCmsObject();
echo("Testing search issue with special folder name");
String folderName = "/basisdienstleistungen_-_zka/";
cms.copyResource("/types/", folderName);
cms.unlockProject(cms.getRequestContext().currentProject().getId());
cms.publishProject();
CmsSearch cmsSearchBean = new CmsSearch();
cmsSearchBean.init(cms);
cmsSearchBean.setIndex(INDEX_TEST);
List results;
cmsSearchBean.setSearchRoot("/");
cmsSearchBean.setQuery("+Alkacon +OpenCms");
results = cmsSearchBean.getSearchResult();
printResults(results);
assertEquals(8, results.size());
assertEquals("/sites/default" + folderName + "text.txt", ((CmsSearchResult)results.get(0)).getPath());
cmsSearchBean.setSearchRoot(folderName);
cmsSearchBean.setQuery("+Alkacon +OpenCms");
results = cmsSearchBean.getSearchResult();
printResults(results);
assertEquals(1, results.size());
assertEquals("/sites/default" + folderName + "text.txt", ((CmsSearchResult)results.get(0)).getPath());
}
/**
* Prints the result form the search to System.out.<p>
*
* @param results the result List to iterate
*/
private void printResults(List results) {
Iterator i = results.iterator();
int count = 0;
while (i.hasNext()) {
CmsSearchResult result = (CmsSearchResult)i.next();
System.out.println(++count + ": " + result.getPath() + " - " + result.getTitle());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -