如何在单个字段下索引和搜索多个值。
例如说我有一个现场处理器,它可能具有i3,i5,i7或i3或i3,i5值。现在想象一下笔记本电脑的数据如下:
数据1:
name= laptop name
price = laptop price
processor=core duo
Run Code Online (Sandbox Code Playgroud)
数据2:
name= laptop name
price = laptop price
processor=i3,i5
Run Code Online (Sandbox Code Playgroud)
数据3:
name= laptop name
price = laptop price
processor=i3,i5,i7
Run Code Online (Sandbox Code Playgroud)
现在,
如果用户只想搜索i3和i5处理器,则应仅显示data2和data3。
所以我的问题是我应该如何索引和搜索 lucene。我正在使用Lucene 4.4。
我检查了 一下,但不明白,因为那里没有例子。一个例子对我是有好处的。
坦白说,它并没有太多的意义。使用using StandardAnalyzer和standard QueryParser,您只需将字段以显示的形式添加到文档中,例如:
Document document = new Document();
document.add(new TextField("name", "laptop name"));
document.add(new TextField("processor", "i3,i5,i7"));
//Add other fields as needed...
//Assuming you've set up your writing to use StandardAnalyzer...
writer.addDocument(document);
Run Code Online (Sandbox Code Playgroud)
StandardAnalyzer将对标点符号(和空格等)进行标记化,在“处理器”字段中为标记“ i3”,“ i5”和“ i7”建立索引,因此,仅使用标准QueryParser(请参阅查询解析器语法)时,查询:
processor:(i3 i5)
Run Code Online (Sandbox Code Playgroud)
将在“处理器”字段中找到任何带有“ i3”或“ i5”的字段
| 归档时间: |
|
| 查看次数: |
6282 次 |
| 最近记录: |