Tag: 搜索

列表排序时在List中查找值的最佳方法

假设我有一个已排序的Java ArrayList。 现在我想找到值x的索引。 什么是最快的(不超过30行代码)方式来做到这一点? 使用IndexOf()方法? 在简单的for循环中迭代所有值? 使用一些很酷的算法? 我们正在谈论让我们说50个整数键。

在jsp中处理浏览器的“后退”按钮

我有一个jsp搜索页面(Search.jsp)和一个结果页面(Result.jsp),它们都可以选择搜索条件。 然后将参数传递给java控制器文件(Controller.java)以构建查询字符串并执行查询搜索。 查询字符串和搜索结果将传递给Result.jsp进行显示。 目前,我使用servletContext来记住已处理的查询字符串,如果用户使用Result.jsp来选择搜索条件,Controller.java会将此类条件附加到现有查询字符串。 如果我使用Result.jsp进行一些搜索。 例如,查询字符串将在Result.jsp页面上显示((Query1) AND Query2) AND Query3 。 然后使用浏览器的后退按钮返回上一个显示页面。 对于同一示例,查询字符串显示(Query1) AND Query2 。 然后,如果我再次搜索。 将使用查询字符串(((Query1) AND Query2) AND Query3) AND Query4 。 我知道这是我当前的实现所期望的,因为Result.jsp不会对已处理的查询字符串进行任何修改。 但是,我想当用户使用浏览器的Back按钮时,例如,查询字符串在页面上显示为(Query1) AND Query2 ,并执行搜索,查询字符串应为((Query1) AND Query2) AND Query4其中查询字符串是根据Result.jsp页面上当前显示的查询字符串加上当前选择构建的。 我怎样才能做到这一点? 这听起来很简单,但我已经尝试了几种使用Result.jsp来更新查询字符串的方法,但仍然无法正确使用它。 因此,我想知道使用方法可能是错误的。 我想听听你的建议。 提前致谢。

一个在某个网站上搜索的java程序

我想编写一个Java代码来搜索某个网站“新闻纸网站”。 网站中的每个结果都显示在指定的URL中。 我怎么开始? 有一个好的图书馆可供使用吗? 我可以从您在这个领域的经验中受益吗?

使用Java和Scribe的Vimeo搜索API

在它的API Vimeo工程师声称我们应该能够在没有访问令牌的情况下进行搜索,我花了好几个小时而不幸的是无法让它工作,我不确定我做错了什么,所以如果你做的话请帮忙这之前。 OAuthService service = new ServiceBuilder().provider(VimeoApi.class).apiKey(consumerString).apiSecret(consumerSecret).build(); OAuthRequest myrequest = new OAuthRequest(Verb.GET,”http://vimeo.com/api/rest/v2format=json&method=vimeo.videos.search&query=fun”); Token mytoken = new Token(“”, consumerSecret); service.signRequest(mytoken, myrequest); Response response = myrequest.send(); 谢谢

使用elasticsearch对文本进行分类

我目前正在开发一个涉及从文本中识别不同“关键字”的项目。 作为示例,我们假设以下输入文本: “这是布宜诺斯艾利斯关于肉类的一些文字的例子”。 进一步假设我的elasticsearch实例存储了以下文档: 城市:[巴塞罗那,布宜诺斯艾利斯,洛杉矶……] 和 分类:[金融,政治,……] 我需要一种方法来从输入文本中识别相应的城市和类别。 我的第一种方法是使用“或”运算符进行搜索查询,并查看哪一个具有最高排名。 之后,我还将匹配的文件与文本重新匹配,以确保这些文本真的存在(换句话说,确保“洛杉矶”匹配,因为“洛杉矶”一词在文本中,只有“洛杉矶”或“洛杉矶)。 我想知道它是否是使用Elasticsearch做这种事情的最佳实践方式。

使用二进制搜索按顺序添加到ArrayList

大家好,希望你能在这里帮助我, 我的问题是我需要能够使用二进制搜索搜索ArrayList,并找到添加对象的正确位置,以便列表保持有序。 我不能使用集合排序,因为这是一个功课。 我已经正确实现了一个布尔方法,该方法告诉列表是否包含您要搜索的项目。 那段代码在这里: public static boolean search(ArrayList a, int start, int end, int val){ int middle = (start + end)/2; if(start == end){ if(a.get(middle) == val){ return true; } else{ return false; } } else if(val < a.get(middle)){ return search(a, start, middle – 1, val); } else{ return search(a, middle + 1, end, […]

lucene standardanalyzer是否会删除停用词并具有词干function?

我已经使用indexWriter测试了standardanalyzer并发现它会自动删除停用词,但是,我没有添加停用词列表,因为下面的代码是我用的 StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35); IndexWriterConfig config =new IndexWriterConfig(Version.LUCENE_35, analyzer); 默认停用词列表在哪里? 此外,这个分析仪也会自动干掉字吗?

在lucene中搜索UUID无法正常工作

我有一个UUID字段,我将按以下格式添加到我的文档中:372d325c-e01b-432f-98bd-bc4c949f15b8。 但是,当我尝试通过UUID查询文档时,无论我如何尝试转义表达式,它都不会返回它们。 例如: +uuid:372d325c-e01b-432f-98bd-bc4c949f15b8 +uuid:”372d325c-e01b-432f-98bd-bc4c949f15b8″ +uuid:372d325c\-e01b\-432f\-98bd\-bc4c949f15b8 +uuid:(372d325c-e01b-432f-98bd-bc4c949f15b8) +uuid:(“372d325c-e01b-432f-98bd-bc4c949f15b8”) 甚至使用TermQuery完全跳过QueryParser,如下所示: new TermQuery(new Term(“uuid”, uuid.toString())) 要么 new TermQuery(new Term(“uuid”, QueryParser.escape(uuid.toString()))) 这些搜索都不会返回文档,但如果我搜索UUID的某些部分,它将返回一个文档。 例如,这些将返回一些东西: +uuid:372d325c +uuid:e01b +uuid:432f 我应该怎么做索引这些文件,以便我可以通过他们的UUID拉回来? 我已经考虑重新格式化UUID以删除连字符,但我还没有实现它。

在整个计算机中搜索Java中的文件名

有没有办法在整个计算机中搜索表示Java中文件名的String值? 这将是不知道计算机上驱动器的名称。

Lucene 5排序问题(UninvertedReader和DocValues)

我正在使用Lucene 5.2.1内置的搜索引擎,但我在搜索排序更新选项时遇到问题。 使用Sort选项搜索时出错: 线程“main”中的exceptionjava.lang.IllegalStateException:字段’stars’的意外docvalues类型为NONE(expected = NUM​​ERIC)。 使用UninvertingReader或索引与docvalues。 在org.apache.lucene.index.DocValues.checkField(DocValues.java:208) at org.apache.lucene.index.DocValues.getNumeric(DocValues.java:227) at org.apache.lucene.search.FieldComparator $ NumericComparator.getNumericDocValues(FieldComparator.java:167) at org.apache.lucene.search.FieldComparator $ NumericComparator.doSetNextReader(FieldComparator.java:153) at org.apache.lucene.search.SimpleFieldComparator.getLeafComparator(SimpleFieldComparator.java:36) 在org.apache.lucene.search.FieldValueHitQueue.getComparators(FieldValueHitQueue.java:183) at org.apache.lucene.search.TopFieldCollector $ NonScoringCollector.getLeafCollector(TopFieldCollector.java:141) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:762) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:485) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:694) 在org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:679) 在org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:621) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:527) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:577) 在SearchEngine.searchBusinessByCategory(SearchEngine.java:145) 在Tests.searchEngineTest(Tests.java:137) 在Main.main(Main.java:13) 我索引了一个文档,其中包含一个双字段“星号”,我需要用它来对搜索结果进行排序(具有最高“星号”值的文档需要在顶部)。 Document doc = new Document(); doc.add(new DoubleField(“stars”, stars, Store.YES)); 然后我在“stars”字段上实现了带有Sort选项的Search命令,如下所示: SortField sortfield = new SortField(“stars”, SortField.Type.DOUBLE, true); Sort sort […]