草庐IT

php - 使用 Zend_Search_Lucene 搜索数字

那么为什么下面的第一个搜索示例没有返回任何结果?非常感谢任何有关如何修改以下代码以使数字搜索成为可能的想法。创建索引$index=newZend_Search_Lucene('/myindex',true);$doc->addField(Zend_Search_Lucene_Field::Text('ssn','123-12-1234'));$doc->addField(Zend_Search_Lucene_Field::Text('cats','Fluffy'));$index->addDocument($doc);$index->commit();搜索-无结果$index=newZ

java - Solr中添加自定义查询参数的正确方法

我目前正在运行一个工作正常的Solr客户端/服务器对。但是,在某些情况下,发送到Solr的过滤器查询(fq参数)非常大(可能有数千个字符)并且无法缩减。由于查询解析需要onlyafractionoftheoveralltime,我想尝试压缩此查询部分并将其发送到Solr。我正在考虑修改客户端而不是fq它使用另一个参数(例如zfq)。然后Solr可以决定-如果它收到zfq,它使用它并将数据解码为fq.否则它应该像往常一样运行。实现上述目标的标准方法是什么?看起来有SearchHandler,requestHandler,(都在solrconfig.xml中)和许多其他人,我不太确定什么是

java - 如何执行分面搜索?

我想知道如何使用lucene.facet执行分面搜索。我将准确解释我想做什么:我有一个html文件的分类法(类似于ODP),我希望在给定查询的情况下,按类别和每个类别的点击次数显示结果。有没有用lucene描述的例子?编辑:我已经通过在每个文档中添加一个类别字段来获得作为类别的结果。我想要的是结果显示为:Cat1N1Cat2N2...代替:Cat1Cat1...xN1timesCat1Cat2...xN2timesCat2...此外,这个类别字段仅指分类树的一个级别,我想通过例如能够在分类中选择搜索深度来利用分类结构(我不知道这是否清楚了..)。谢谢! 最佳

java - 使用 Lucene 进行分词和索引,如何处理外部分词和词性?

我想构建我自己的——我不确定是哪一个——分词器(从Lucene的角度来看)或我自己的分析器。我已经写了一个代码,用word标记我的文档(作为List或ListWord>其中Word是一个只有一种容器的类3publicString:word,pos,lemma-pos代表词性标签)。我不确定要索引什么,也许只有“Word.lemma”或类似“Word.lemma+'#'+Word.pos”,可能我会根据词性从停用词列表中进行一些过滤。顺便说一句,这是我的误解:我不确定我应该在哪里插入LuceneAPI,我应该将自己的分词器包装在新的分词器中吗?我应该重写TokenStream吗?我应该认

java - Lucene - 相当于 SQL "IN"关键字

请原谅我的新手问题。我曾尝试搜索答案,但考虑到关键字,搜索此类内容非常困难...我正在使用Lucene5.2.x来索引一组文档,每个文档都有两个字段:id和description。我从系统中的先前查询中获得了一组ids。现在,我想获取有关description的Lucene文本搜索结果,但只能来自ids集合中的文档。如果我在MySQL中(天真地)这样做,我可能会做类似的事情:SELECT*FROMmytableWHEREdescriptionLIKE'blah%'ANDidIN(6345,5759,333,...)ids的集合可能有数万个。使用Lucene的最佳方法是什么?我可以构造一

java - Elasticsearch 和 luke

如何使用luke打开elasticsearch索引?我尝试了从3.5到4.8的luke,从1.1到1.2的elasticsearch,但似乎没有任何效果。似乎唯一适用的资源是http://rosssimpson.com/blog/2014/05/06/using-luke-with-elasticsearch/不幸的是,这没有用。 最佳答案 Luke现在支持elasticsearch1.5.0:https://github.com/DmitryKey/luke(从master构建或使用https://github.com/Dmitr

java - 小词词干提取/词形还原

目前我使用“lucene”和“elasticsearch”,遇到下一个问题。我需要获得diminutive的词干形式或引理单词。例如:小狗->狗小猫->猫等等但我得到下一个结果:doggy->doggikitty->kitti有没有什么方法(不重要的现成库、任何算法、方法等)来获取diminutive的词根/原始词形式单词形式?目标语言:俄语。例如:собачка->собакакошечка->кошка提前致谢! 最佳答案 首先,作为旁注:您尝试做的事情通常不称为词干提取或词形还原。您的第一个问题是将观察到的token(例如со

java - Lucene 空间、准确性

我正在遵循“LuceneinAction”中的示例,第308-315页,它描述了LuceneSpatial。我正在使用lucene2.9.4。我用过http://geocoder.us/service/distanceendpoint来计算一些位置之间的距离,然后编写单元测试来验证索引可以找到给定半径内的位置。我想知道我能期望lucene有多准确。例如,如果我给半径10.0,我的纬度/经度点之间的距离是9.99英里,它是否能够在所有情况下找到这个位置?提出这个问题的是,我发现搜索对于小半径值(例如10.0或更小)非常准确,而对于较大的值(例如r=25.0)则不准确。有什么我可能做错的吗

java - 如何计算文档集的词频?

我有一个包含以下文件的Lucene-Index:doc1:={caldari,jita,shield,planet}doc2:={gallente,dodixie,armor,planet}doc3:={amarr,laser,armor,planet}doc4:={minmatar,rens,space}doc5:={jove,space,secret,planet}所以这5个文档使用了14个不同的术语:[caldari,jita,shield,planet,gallente,dodixie,armor,amarr,laser,minmatar,rens,jove,space,sec

java - 如何使用 Lucene 生成唯一 ID?

我正在使用Lucene来存储(以及索引)各种文档。每个文档都需要一个持久的唯一标识符(用作URL的一部分)。如果我使用的是SQL数据库,我可以使用integerprimarykeyauto_increment(或类似的)字段为添加的每条记录自动生成唯一ID。有没有办法用Lucene做到这一点?我知道Lucene中的文档是有编号的,但我注意到这些编号会随着时间的推移而重新分配。(我使用的是Java版本的Lucene3.0.3。) 最佳答案 正如larsmans所说,您需要将其存储在单独的字段中。我建议您对字段进行索引和存储,并使用Ke