Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在大字符串中搜索一组关键字_Java_Solr_Lucene_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nutch - Fatal编程技术网 elasticsearch,nutch,Java,Solr,Lucene,elasticsearch,Nutch" /> elasticsearch,nutch,Java,Solr,Lucene,elasticsearch,Nutch" />

Java 在大字符串中搜索一组关键字

Java 在大字符串中搜索一组关键字,java,solr,lucene,elasticsearch,nutch,Java,Solr,Lucene,elasticsearch,Nutch,我必须在文本文件或大字符串中进行搜索,以检查文本是否包含一组关键字(可能是数百万)。如果它包含关键字,我必须突出显示匹配的任何关键字。对此应采取什么方法?lucene是否提供了解决方案?您可以使用lucene 你会在网上找到很多例子,这里有一个你用Elasticsearch标记你的问题的例子-如果你愿意使用ES,我认为带突出显示的渗透可能适合你的需要。您可以使用percolator将每个关键字注册为单独的查询,然后通过它运行每个文档或字符串。它将返回匹配的查询列表。您还可以将其与高亮显示相结合

我必须在文本文件或大字符串中进行搜索,以检查文本是否包含一组关键字(可能是数百万)。如果它包含关键字,我必须突出显示匹配的任何关键字。对此应采取什么方法?lucene是否提供了解决方案?

您可以使用lucene


你会在网上找到很多例子,这里有一个你用Elasticsearch标记你的问题的例子-如果你愿意使用ES,我认为带突出显示的渗透可能适合你的需要。您可以使用percolator将每个关键字注册为单独的查询,然后通过它运行每个文档或字符串。它将返回匹配的查询列表。您还可以将其与高亮显示相结合


是文本文件还是字符串?这看起来并不完全一样——你可以使用trie或bloom过滤器。我的意思是,它可能是我需要搜索的文本文件,也可能是字符串形式的文本内容。嗯,我正在进行的项目会给出一个解决方案。。。您需要使用trie来记录位置。@fge我一定会调查的。谢谢。我会研究提供的解决方案。谢谢。我不必创建连接令牌。我必须搜索单个标记并突出显示它。例如-我想在文本
中查找“stack,overflow,exchange”(在实际场景中,它将是一个大列表)“This stack是空的。让exchange放置”
,然后它应该在字符串中突出显示(或至少查找)
stack
exchange
。。。。您可以编写有关如何使用令牌的自定义逻辑。@Hirak-否,lucene
ShingleFilter
将其输入令牌流中的令牌组合到ngrams(某种类型)中。这与这里无关。我只有一个文档和数以百万计的关键字。所以创建10000个单独的过滤查询,每个查询中有100个关键字,加上突出显示。10k percolation查询并不过分,只需要向外扩展到更多ES节点(水平扩展,主要需要额外的cpu)。太棒了!这正是我想要的。