Search by title, abstract and author keywords boolean query - search

I try to search a general query in ieee search which is this ("data" AND "social media")
If I use this in the simple general search it works fine. However if I try to use specific criteria in order to search only in title or abstract or author keywords using this boolean query
("Publication Title":("data" AND "social media") OR "Abstract":("data" AND "social media") OR "Author Keywords":("data" AND "social media"))
I can't take anything. Is there anything I make wrong in the process? How can I search in ieee search?

I applied your query in the IEEE Digital Library and it returned me 17 research paper means your query is completely fine.
You query searches the word 'data' and 'social media' in publication title, Abstract and Author keywords.
There is also advance search in IEEE Xplore Digital Liberary in which you can perform search easily by searching it from either metadata or metadata and fulltext.

Related

How to disable tokenization for Azure Search Autocomplete?

I've created Azure Search Suggester for "full_name" index field in order to support autocomplete functionality. Now when I use Azure autocomplete REST endpoint by using "search" parameter as a let's say "Lor" I only get back the result "Lorem" not the "Lorem Ipsum". Is there any way to disable tokenization for suggester and to get back full name like "Lorem Ipsum" for the search term "Lor" for autocomplete?
The Autocomplete API is meant to suggest search terms based on incomplete terms one is typing into to the search box (type-ahead). It supports three modes:
oneTerm – Only one term is suggested. If the query has two terms, only
the last term is completed. For example:
"washington medic" -> "medicaid", "medicare", "medicine"
twoTerms – Matching two-term phrases in the index will be suggested,
for example:
"medic" -> "medicare coverage", "medical assistant"
oneTermWithContext – Completes the last term in a query with two or
more terms, where the last two terms are a phrase that exists in the
index, for example:
"washington medic" -> "washington medicaid", "washington medical"
The twoTerms mode might work for you. If you're looking for an API that suggests documents based on an incomplete query term, try the Suggestions API. It returns the entire contents of a field that has a Suggester enabled for all documents that matched the query.

How do I perform a partial search while preserving order using solr?

Using Solr 4.0, I have a field Title_t(to store titles of books) which is of type TextField. Assuming that these are the following titles stored in my db:
Physics Guide
Tutorial on Theoretical Physics
The General Physics
Book
If one wants to search for a title "Physics Guide", then one could use
Title_t:physics G*
this shows up all results
Physics Guide
Tutorial on Theoretical Physics
The General Physics Book
Now, to my question:
Why isnt the filter not showing only the "Physics Guide" result?
Since the search criteria is "physics G*" and not "*physics G *", only one result should be displayed .Is there a way to preserve order in the search key word?
After parsing you query Title_t:physics G* will become like
Title_t:physics df:G*
df here is default field(usually it will be text, check your config files).
and default operator will OR. so it returns documents with Title_t having term 'physics' and documents with any fields copied default field with words starting with G.
Try with ComplexPhraseQueryParser
q={!complexphrase inOrder=true}Title_t:"physics G*"

Fuzzy search on a collection of strings

I'm using Azure Search and I have an index that has a field named 'keywords', which holds keywords (with type Collection(Edm.String)) related to a single document. I want to be able to use fuzzy search on my documents and as I understood from this link, all I have to do is put a '~' character to the end of my search query. However, this doesn't seem to work in my case.
I have a few documents in my index and one of them includes "fun" in its keywords. When I search for "run" with fuzzy search, I expect to see the documents with keyword "run", as well as "fun". If I know correctly, the edit distance between "fun" and "run" is only 1, which seems to be the default distance Azure Search's fuzzy search uses. Am I doing anything wrong here?
Or does the type Collection(Edm.String) not support fuzzy search? The attributes for 'keywords' are Searchable, Filterable and Retrievable.
Edit: I'm using the Standard Lucene Analyzer for the 'keywords' field. When I send the query
https://fakename.search.windows.net/indexes/fakeindex/docs?api-version=2016-09-01&search=run~
I would expect to get the following document as its keywords contain "fun"
"keywords": [
"balloon",
"message",
"text",
"monster",
"fun",
"evil",
"mad",
"cartoons",
"funny"
]
The fuzzy search feature is only supported in Lucene query syntax in Azure Search. Please specify queryType=full in the query string.

Does Solr have an equivalent of "strict order operator" that Sphinx has?

I'm choosing between Solr and Sphinx.
Sphinx doc page
has a section called "5.3. Extended query syntax" which describes the following search parameters (among others) :
strict order operator (example: aaa << bbb << ccc) -
NEAR, generalized proximity operator (example: hello NEAR/3 world NEAR/4 "my test") - search according to distance between words
SENTENCE/PARAGRAPH (example: "Bill Gates" PARAGRAPH "Steve Jobs") - search inside a sentence/paragraph
Does Solr have any similar functionality?
strict order operator: you would need to use SpanQueries for this, look at enter link description here for an explanation of SpanQuery, and in order to use them from Solr, you could try SurroundQParser or else see this other question
NEAR, generalized proximity operator: yes, this is supported, see Proximity search
SENTENCE/PARAGRAPH: not directly. You could try several approaches:
Map somehow those to documents (and maybe use Join functionality in 4.0 to link Paragraph documents to parent documents etc)
Try to insert information about paragraphs with special tokens/gaps, see this

field cross search in lucene

Hi:
I have two documents:
title body
Lucene In Action A high-performance, full-featured text search engine library.
Lucene Practice Use lucene in your application
Now,I search "lucene performance" using
private String[] f = { "title", "body"};
private Occur[] should = { Occur.SHOULD, Occur.SHOULD};
Query q = MultiFieldQueryParser.parse(Version.LUCENE_29, "lucene performance", f, should,new IKAnalyzer());
Then I get two hits:
"Lucene In Action" and "Lucene Practice".
However I do not want the "Lucene practice" in the search result.
That's to say,I just want the documents who own all my search terms can be returned,the "lucene parctice" does not contain the term "performance",so it should not be returned.
Any ideas?
Lucene cannot match across fields. That is to say, for the query "a b", it won't match "a" in title and "b" in body. For that you need to create another field, say, all_text, which has title and body both indexed.
Also, when you are searching for "lucene performance" I suppose you are looking for documents that have both the terms - lucene as well as performance. By default, the boolean operator is OR. You need to specify default operator as AND to match all the terms in the query. (Otherwise in this case, the query "lucene performance" will start returning matches that talk about database performance.)

Resources