使用Lucene处理同义词(短语)的最佳方法是什么?
特别是,当我需要执行诸如:a、b或c而不是d这样的查询时
在索引时为每个文档添加一个名为“同义词”的新字段如何?
此字段的值将包含所有同义词的列表。只有当文档具有任何同义词时,才会将其添加到文档中
然后,我将执行一个“或”搜索查询,该查询将在该字段以及其他字段中查找搜索关键字
这种方法是否适用于任何类型的查询
仅供参考,
我的应用程序中的同义词完全是自定义的,而不是来自英语词典。“全球金融领袖”也可以指“顶级投资银行”或“财富500强金融公司
给定一个文档{'foo','bar','baz'},我想使用PanarQuery和标记{'baz','extra'}进行匹配
但这失败了
我该怎么做
使用lucene 2.9.1进行样品试验,结果如下:
givenSingleMatch-PASS
givenTwoMatches-通行证
givenThreeMatches-通过
givenSingleMatch_和ExtrateRM-失败
PanerarQuery允许您查找彼此之间在一定距离内的术语
示例来自:
说我们想在5分钟内找到lucen
我想用编辑距离搜索Lucene索引。例如,假设有一个字段名为的文档;我希望所有文件的名字都与“john”保持1编辑距离
我知道Lucene支持模糊搜索(名字:john~),并使用0到1之间的数字来控制模糊性。问题是(对我来说)这个数字不能直接转换为编辑距离。当文档中的值是短字符串(少于3个字符)时,模糊搜索很难找到它们。例如,如果有一个名为“J”的文档,我搜索名为:I~0.0,我不会得到任何回复 如果只需要1个编辑距离,并且结果可以包含精确匹配,则可以在查询语言中使用单字符通配符。如果名字是
j
我正在搜索lucene中作为文档索引的字符串。现在我给它一个长字符串来匹配
例如:
“IAMRHITBANGA是stackoverflow用户”搜索字符串
文件:
文件1:字段值:rohit
文档2:字段值:banga
现在我使用模糊匹配来查找文档中的搜索字符串
这两个文档匹配。我想检索字符串在搜索字符串中出现的位置。如何使用lucenejavaapi实现。
还要注意,模糊匹配也会导致不精确匹配。但我对搜索字符串中的位置词感兴趣
答案
指的是一个网站,它要求我们从下载一些文件,但此页面不加载
我有一个数据库,其中有一列我希望索引,该列的名称以逗号分隔,例如
User.FullNameList = "Helen Ready, Phil Collins, Brad Paisley"
我更喜欢原子化每个名称(名称作为一个整体可搜索实体)。最好的方法是什么
我是否错过了一个简单的设置选项
标记化分隔符
我有吗
创建子类或编写自己的类
那是我自己的代币器吗
还有别的吗?;)
或者Lucene.net不支持短语
或者它是否足够聪明,能够自动处理这个用例
我肯定我不是第一个这样做的人。谷歌没有产
我在索引文件中存储了一个未加密的字段。当我试图从索引文件中获取该字段值时,我无法获取它
注意:我有另一个未加密的字段,在那里我可以得到那个值,存储在这个字段中的数据在这个字段中没有任何空格
示例:(史密斯、大卫、沃尔特、约翰).但我要问的是其中有空格。示例:(大卫·史密斯、马克·约翰、比尔·曼).
我不认为这是原因
非常感谢您的帮助。请记住,在索引和搜索时必须同时完成标记化或缺少标记化。
您是否尝试在搜索端使用关键字标记器?请使示例更具描述性,如:索引中存储的值为:AAAAAAA,查询中的值为:
我正在使用ColdFusion 9.0.1和集成的SOLR全文搜索引擎
我将日期存储在SQL Server数据库中,作为即将发生的事件的日期时间字段。我将这些记录插入到SOLR集合中,custom3和custom4字段分别是dateStart和dateEnd日期。用户希望根据日期范围查询集合,并按离现在最近的日期排序
第一个问题:如何设置custom1-4字段的数据类型?或者,我们可以吗?基于此帖子,该字段应设置为tdate或date,而不是字符串,以获得最佳性能。或者SOLR是否根据这篇文章自
我正在使用lucene和solr来索引一些文档(新闻)。这些文件也有标题。
现在,我尝试在HEADLINE字段上进行facet搜索,以查找计数最高的术语。
所有这些工作都没有问题,包括停止字列表。
标题字段是多值字段。我使用solr.StandardTokenizerFactory将这些字段拆分为单个术语(我知道,这不是最好的做法,但这是唯一可行的方法)
有时,标记器拆分不应该拆分的术语,如9/11(拆分为9和11)。所以我决定使用一个“protword”列表。“9/11”是这个主题词列表的一部
Solr如何支持多值字段上的范围查询?(当Lucene本身不支持时)。Lucene确实支持多值字段的范围查询。见下文:
谢谢你,罗伯特。我意识到,在记录了这个问题之后,lucene确实支持多值字段的范围查询。我不知道如何删除/关闭此问题。
最近我开始在solr上工作。我已经在solr中创建了索引,我想通过java应用程序查询它。我不想在我的应用程序中使用solr.war。如何通过solrj api或lucene java api使用它?我的想法是在项目上下文中添加这些索引并使用它。我浏览了一些示例/教程,但没有找到任何关于如何使用已创建索引的内容。请告诉我一个合适的解决方案,或者任何指定该解决方案的链接都将不胜感激。是的,您可以将Solr创建的索引与Lucene一起使用,这没有什么特别之处,因为Solr本身使用Lucene。因此,
我有以下文件
{
"authors" : "Nanna Friis",
"authorsId" : [ "4642" ],
"description" : "Med denne praktiske og pædagogiske håndbog kommer du hele vejen rundt om at skrive godt til nettet. Du bliver taget ved hånden og får en grundig gennemgang af d
有人能给我一些提示在lucene中应用伪反馈吗。我在谷歌上找不到什么帮助。我正在使用相似类。
lucene中是否有我可以扩展以实现反馈的类?
谢谢。假设您引用的是原始查询的TopDocs,请迭代多少条(假设我们希望原始查询前25个文档的前25个术语)记录,然后调用IndexReader.getTermVectors(int),这将获取您需要的信息。迭代每一步。在将术语频率存储在散列图中时,我会立即想到这个实现
比如:
//Get the original results
TopDocs docs
在我的应用程序中,我们有交易,每个交易都有一个目标用户组,可能包括几个领域,如性别、年龄和城市。就性别而言,协议的目标可能是男性或女性,或者两者兼而有之。我想找到适合男性或两者的交易。我创建了以下查询,但它不起作用
TermQuery maleQuery = new TermQuery(new Term("gender","MALE"));
TermQuery bothQuery = new TermQuery(new Term("gender","BOTH"));
BooleanQuery
我正在使用Neo4j,我想知道是否有可能创建一个具有唯一字段的lucene索引。也就是说,每个键/值对只能与一个节点关联
例如,我希望实现以下行为:
someIndex.add(node1, "firstName", "Roy");
someIndex.add(node2, "firstName", "John");
// Here I expect to recieve an exception because the key/value pair (firstName, Roy) is a
我在从我的LuceneIndex中删除文档时遇到问题。对于我的删除,我使用了termquery。在我注意到文档没有被删除后,我尝试先搜索文档,但没有找到任何文档
我存储文档的方式如下:
public boolean storeNote(Note note) throws Exception {
Document doc = new Document();
this.initalizeWriter(OpenMode.CREATE_OR_APPEND);
我使用的是Lucene 4.6,显然不清楚如何重用令牌流,因为我遇到了一个例外:
java.lang.IllegalStateException: TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class f
我是Lucene的新手,我正在hibernate中搜索employee类的两个字段,这些字段是emp_name和emp_address,但使用此代码
我在查询解析器中使用以下语法找到了解决方案
String tst = "emp_name:\"karthick\" AND emp_address:\"tn\"";
Query lucenceQuery = new QueryParser(Version.LUCENE_35, null, analyzer).parse(tst);
您好,我目前正在使用Lucene 4.6.1
在我的设计中,我需要能够搜索和页面可能很多的结果,所以我有一些优化的一般问题
首先在“search(query q,int n)”中,变量“n”的目标是什么,“n”不同于“.totalHits()”?该编号应如何选择,规格如何
第二,似乎有两种通用的分页算法。我可以使用“searchAfter”或在给定页面大小的情况下处理“ScoreDoc[]”
目前大多数人推荐什么方法,需要什么设计思想?传递给搜索的int是搜索将检索的最大点击数TopDocs中的
标签:elasticsearch Lucene
exact-match
我试图通过特定字段过滤我的elasticsearch索引,确切地说是“国家”字段。然而,我不断地得到大量其他不准确的结果(其他国家)
请有人给我指一下正确的方向
我尝试了以下搜索:
GET http://127.0.0.1:9200/decision/council/_search
{
"query": {
"filtered": {
"filter": {
"term": {
"country": "Algeria"
标签: Lucene
hibernate-searchinfinispan
我们的应用程序正在使用Hibernate搜索对其部分数据进行索引。该应用程序运行在两台JBoss EAP 6.2应用程序服务器上,用于负载分配和故障切换。我们需要在一台机器上所做的更改在另一台机器上立即可见。索引是应用程序的核心部分,需要与数据库数据保持一致。完全重建它需要很长时间,因此即使在服务器崩溃的情况下,它也必须保持完整。此外,该索引预计会变得太大,无法将其全部保存在内存中
我们当前的解决方案是使用带有共享文件系统(NFS)和JGroups后端的标准文件系统目录,以确保在任何时候只有一台
我正在学习如何为Sitecore 6.6设置和配置Lucene搜索索引。我拼凑了一个基本配置文件,该文件从树中我想要的位置开始索引所有类型为“Article”模板的项,并且能够从该索引中提取所有项并显示结果中的名称
现在,我已经准备好自定义该索引。我需要专门为两个字段编制索引,但配置语法有问题。这是这两个字段的细分。我希望有人能帮助我调整配置来解释这些字段
元关键字-此字段(单行文本)不是文章模板的一部分,而是从文章继承的另一个名为Meta Base的模板中拉入的。我不需要存储它,只需要为它编制
如何将非索引字节数组存储到lucene文档中
我试过这些:
doc.add(新字段(“bin1”,新的InputStreamReader(新的ByteArrayInputStream(新的字节[100000]));
doc.add(新的二进制docvalues字段(“bin2”,新的BytesRef(新的字节[100000]));
并且没有工作(字段未存储,查询时无法检索)
测试代码:
String index=“dms1”;
目录indexDirectory=FSDirectory.open
我有一个带有Kibana Elastic search的内部门户,用于日志管理,我有一组字段。有人能告诉我如何形成一个查询和搜索短语,以检索和显示指定的字段作为结果
谢谢。为了只返回响应中需要的特定字段,您可以在请求正文中执行以下操作:
"size" : 10, <------ you can have this or leave it out
"_source": ["chargeamount"], <------ the field
如何使用Lucene查询列表?这是我的尝试,但我出错了
var top10MoviesQuery = session.Advanced.DocumentQuery<Media, Media_Index>()
.SetResultTransformer("MediaListTransformer")
.SelectFields<MediaListProjection>()
.WhereEquals(o => o.AvalibleOnServices,
这是一个简单的用例,但不能给出好的解决方案
基本上我有两个索引字段:内容和关键字(关键字标记器),其中内容是一个长文本字段,关键字包含该内容中的重要术语。当我使用一些长文本进行查询时,我必须根据匹配文档中的关键字来提升这些结果
我尝试在内容和关键字字段上查询完整的文本,但速度太慢,或者对超过40个单词的文本抛出太多的\u子句错误
{"query": {
"match": {
"keywords": {
"query": "some long text",
Lucene QueryParser.parse(字符串)仍然有效吗?
如果已弃用,新语法是什么
Query=QueryParser.parse(“Ophelia”)
谢谢
Tatyana不确定确切的API,但它已更改为实例对象。所有QueryParser现在都是实例对象
var qp = new QueryParser(new StandardAnalyzer(),fields);
qp.Parse(inputString,fields);
5.0版:
QueryParser parser
为Solr/Lucene实现自定义排名算法的正确方法是什么
我了解到Zvents为与特定地理区域中的事件对应的文档实现了距离加权排名系统()
我想做一些类似的事情:我为不同城市的广告编制索引,并且我想提高给定特定位置的最近广告的相关性。是一个旨在向Lucene添加本地搜索的项目。基本上,可以向索引字段添加空间坐标。然后,您必须根据您的索引结构,决定是否最好首先根据文本匹配进行搜索,然后按地理位置进行过滤,或者相反。有一个空间结果过滤器的示例。在这方面,政府可能会有更多的努力。另请参见wiki页面
有人能解释一下Lucene中不同分析仪之间的区别吗?我得到了一个maxClauseCount异常,我知道我可以通过使用关键字分析器来避免这种情况,但我不想在不了解有关分析器的问题的情况下从StandardAnalyzer进行更改。非常感谢。一般来说,Lucene中的任何分析器都是标记器+词干分析器+停止词过滤器
标记器将文本分割成块,由于不同的分析器可能使用不同的标记器,因此可以获得不同的输出标记流,即文本块序列。例如,您提到的KeywordAnalyzer根本不分割文本,而是将所有字段作为单个
这与社会保险的情况完全相同
如果我有此格式的代码:
WHO-S-09-0003
我希望能够做到:
query = qb.keyword().onFields("key").matching("WHOS090003").createQuery();
我尝试使用空白分析器。使用StandardAnalyzer或空白分析器都有相同的问题。他们将按原样索引“WHO-S-09-0003”,这意味着当你进行搜索时,只有在搜索词中有连字符时,它才会起作用。
解决问题的一个方法是实现您自己的TokenFil
标签: Lucene
microsoft-distributed-file-system
我想定期在我的web服务器上复制Lucene索引。除了Solr,我是否可以在Windows 2008服务器上设置DFS复制,并使用它在负载平衡的web服务器上复制索引?这种方法有效吗?或者我必须在我的爬虫程序代码中并行写入2个不同的索引器位置
感谢您的帮助
谢谢 我不太确定你的问题。无论使用何种文件系统,都不能让两个写入程序写入同一位置。因此,如果您希望每个NLB服务器都写入同一个位置,则不可能
如果您只有一个writer,并且希望在多个服务器上复制其结果,那么这是可行的,但速度可能会慢一些。L
在我的一个项目中,我在使用Lucene.net时遇到了一个问题,我正在使用SimpleFacetedSearch功能进行分面搜索
我得到一个异常抛出
刻面计数超过2048
我有一个3列,我正在刻面,一旦添加另一个刻面,我就会得到异常
如果我删除了所有其他方面,新的方面就会起作用
深入到SimpleFacetedSearch的源代码中,我可以在SimpleFacetedSearch的构造函数中看到它正在检查面数是否超过MAX_facets,这是一个设置为2048的常量
foreach (str
我已经在scheduled-action-services-context.xml文件中编写了一个cron,每30分钟运行一次
然而,我看到它不工作,当我检查日志时,我只能找到这个错误
对于我的cron,我还使用了lucene搜索。所以我相信这个错误是关于这个,所以请帮助我修复它。以下是错误:
ERROR [quartz.core.JobRunShell] [DefaultScheduler_Worker-8] Job jobGroup.jobD threw an unhandled Excep
以ravendb中的“zoo”文档列表为例,每个文档都有一个字段用于创建年份和一个字段用于描述。“描述”是一个字符串,除其他信息外,它将包括在该动物园可以看到的许多动物
(1) 我如何获取“黑猩猩和猩猩”或“大猩猩”而非狐猴的用户搜索值,并在动物园中搜索描述
(2) 除了1920年10年内建立的所有动物园外,我如何进行相同的搜索
(3) 如何进行以下近距离搜索:“黑猩猩、猩猩”~3和大象
就这个问题而言,不要担心动物名称的单数或复数形式。假设它们是复数形式
编辑:我希望下面的测试返回零结果,而不
我用lucene编写了一个插件,它以这种方式注释某些术语并存储它们的跨度
现在我只需要使用这些跨度而不是默认的lucene存储的跨度来处理span near查询。这是因为并非所有相似的术语都有注释。所以基本上,如果我在k个标记中查询术语,那么我应该能够通过减去它们相应的跨度来获得它们的跨度距离。我怎样才能在lucene做到这一点?我是个新手,所以请尽量描述
谢谢,
Ananth.我在Lucene中遵循的一个很好的一般规则是将经过特殊处理的数据放入自己的字段中,这样就不会有混淆的机会。这样,您就可
我不熟悉PayloadTermQuery的用法,发现它适用于@Search Hub示例中的简单匹配
与Lucene-4.1一样,我在PayloadTermQuery中找不到任何支持模糊查询的API
您能帮助我理解为什么术语规范受到限制,而不是将查询作为PayloadTermQuery构造函数的参数吗
谢谢,
ManuFuzzyQuery扩展自org.apache.lucene.search.MultiTermQuery,而PayloadTermQuery只接受一个术语
只能将“Term”作为参数
我想用lucene和jena对dbpedia的一个子集(我在tdb存储中)执行全文搜索
String TDBDirectory = "path" ;
Dataset dataset = TDBFactory.createDataset(TDBDirectory) ;
但不是所有资源,只是标题。我认为,通过只对所需的三元组进行索引,我可以执行更快的搜索。例如
<http://de.dbpedia.org/resource/Gurke> <http://www.w3.org/20
我为我的产品实体定义了一个文档对象,它有几个字段:标题、品牌、类别、大小、颜色、材质
现在,我想支持用户在多个字段上进行搜索。任何包含一个、两个或多个字段且包含所有搜索词的文档都将被响应
例如,当用户输入“gucci shirt red”时,我希望返回所有字段与所有3个标记“gucci”、“shirt”和“red”匹配的文档。因此,以下所有文件都将得到响应:
1.带标题的文档包含所有3个单词,例如title=“Gucci Modern Shirt Red”或“Gucci blue Shirt”
基本上,我索引了85k个html文件(google结果页面和关键字是不同的大学名称),并在lucene索引中将每个页面的标题用作名为“title”的字段。当我搜索像“duquesne AND university”这样的关键词时,没有结果,但是,当我只将关键词改为“duquesne”时,我可以得到一个标题为“标题:duquesne大学-谷歌搜索”的结果
为什么会这样?从第二次尝试中,我可以看出这个标题为Duquesne Univeristy的文件已编制索引,但我无法从第一次尝试中获得它。
很多T
标签: Lucene
full-text-searchdocumentfrequency
我正在尝试获取术语枚举中每个术语的文档频率。但我每次只得到一个“1”的文件频率为所有条款。任何提示,问题可能是什么?这是我的代码:
Terms terms = reader.getTermVector(docId, field);
TermsEnum termsEnum = null;
termsEnum = terms.iterator(termsEnum);
BytesRef termText = null;
while((termsEnum.next()) != null){
in
elasticsearch中的SpanNotQuery有一些问题。查询的排除部分似乎已被忽略
为了重现问题,我创建了一组文档:
菲茨科彭酒店
菲茨洛本酒店
哈里科彭
哈里洛本
哈里菲茨
科彭·洛本
对harrie的spanterm查询将导致(3、4、5)
kopen的spanTerm查询将导致(1、3、6)
现在,我想在一个SpanNotQuery中组合这个函数,其中include为“harrie”,exclude为“kopen”
我希望结果是(4,5),但它是(3,4,5)
我们必须使用spa
我在Lucene(版本4.10.1)中迈出了第一步,目前的目标是从100KB大的文件中索引一个文本字段。因为文本不能放入字符串中,所以我将文件中的文本放入字节数组中。但是当我运行程序时,Lucene说带有BytesRef值的字段不能被索引
所以问题是:如何索引大文本字段
代码如下:
public class Main {
public static void main(String[] args) {
try {
Directory index
我不知道如何使短语查询工作。它返回精确的数学,但slop选项似乎没有什么区别
这是我的密码:
static void Main(string[] args)
{
using (Directory directory = new RAMDirectory())
{
Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29);
我得到了解释结果:
{
"_index": "scoretest",
"_type": "test",
"_id": "2",
"matched": true,
"explanation": {
"value": 0.8784157,
"description": "weight(content:chinese in 1) [PerFieldSimilarity], result of:",
"details
假设我在lucene中有一组文档,并且我有一个当前结果X,并且X有一个familyID和threadID。是否可以编写一个表示以下内容的查询:
results where result.threadID is X.threadID AND (result.familyID is not X.family ID, UNLESS result.ID is X.ID)
一位同事找到了答案:
(threadID:X.threadID -familyID:X.familyID) id:x.ID
我使用OrientDb 2.1.13
我有以下数据库结构
Area extends V
---------------------------
Field Type
---------------------------
names LinkMap to AreaName
AreaName extends V
---------------------------
Field Type
---------------------------
la
我有一个Lucene索引,其中一个字段映射到Sitecore的富文本字段
由于此字段值包含共享模板的大多数项目的html内容,因此我希望在获取项目的字段值时返回html内容。但是,我注意到返回的值被去掉了所有html标记
我试着把索引类型改成“unknotized”。但这并没有解决问题。我知道Lucene这样做是为了允许基于该字段进行搜索。但这不是我的要求,我希望覆盖此行为。之所以发生这种情况,是因为有一个RichTextFieldReader分配给html和richtext字段:
在Sit
标签: Lucene
azure-cognitive-search
我想从azure search获取所有文档,并使用NOT操作符进行筛选。例如,我想获取所有没有wifi术语的文档
NOT运算符不能单独使用,请参见lucene文档:
NOT运算符不能仅用于一个术语。例如
以下搜索将不返回任何结果:
不是“雅加达apache”
为此,我们必须匹配所有文档,然后过滤掉一些:
*:* NOT wifi
问题:如何匹配azure搜索中的所有文档,如lucene中的*:*?
提前谢谢 一种方法是使用NOT操作符发出匹配所有文档的正则表达式搜索,并过滤掉不需要的文档。请注
标签:elasticsearch Lucene
aggregation
我有一个要求,即我有一组特定于不同配置的文档,我需要返回基于configVersion的最新配置。但我还有其他需要匹配的查询参数。在这种情况下,以下哪一项的性能更快
1) 首先使用聚合列出基于configVersion的最新配置,然后应用查询进行获取。
2) 首先应用查询以获取匹配的记录,然后应用聚合
备选案文1:
{
"size": 10000,
"aggs": {
"finalFilter": {
"terms": {
"field": "c
我的目标如下:
@Data
@AllArgsConstructor
public class SearchItem implements Serializable {
private String id;
@QueryTextField
private String description;
@QueryTextField
private String brand;
}
如您所见,我使用lucene索引启用了两个文件。我现在不知道如何创建TextQuer
有一个简单的解释吗?我应该从代码中理解它吗?如果答案是肯定的,IndexSearcher调用什么方法对文档进行评分
Lucene BM25的相似性实现与文献中的相同吗
我的意思是等于:
tf/(k1*(1-b)+b*(dl/avdl)+tf)是的,可以在中找到文献中BM25的实现。请注意,您提供的公式缺少IDF component。参数设置为k1=1.2 b=0.75
要深入了解lucene的评分机制,您可以随时调用explain()函数。更多关于它的信息可以找到
上一页 1 2 ...
8 9 10 11 12 13 14 ...
下一页 最后一页 共 78 页